MVC test
1,index
@{
ViewBag.Title = "Index";
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<style type="text/css">
#tblist
{
border: 1px solid #0094ff;
width: 600px;
margin: 10px auto;
border-collapse: collapse;
} #tblist th, td
{
border: 1px solid #0094ff;
padding: 10px;
}
</style>
</head>
<body>
<table id="tblist">
<tr>
<th>id</th>
<th>姓名</th>
<th>状态</th>
<th>编辑</th>
</tr>
<!--变量action方法 设置viewData的集合数据生成html-->
@foreach (test.Models.tb_name item in ViewData["DataList"] as List<test.Models.tb_name>)
{
<tr>
<td>@item.Id</td>
<td>@item.uName</td>
<td>@item.uMark</td>
<td>
@Html.ActionLink("删除", "Del", new { id = item.Id })
@Html.ActionLink("修改", "Update", new { id = item.Id })
@Html.ActionLink("添加", "Add")
</tr>
}
</table> </body>
</html>
2,添加视图
@model test.Models.tb_name
@{
ViewBag.Title = "Add";
}
<!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Add</title>
<style type="text/css">
#tblist
{
border: 1px solid #0094ff;
width: 600px;
margin: 10px auto;
border-collapse: collapse;
} #tblist th, td
{
border: 1px solid #0094ff;
padding: 10px;
}
</style>
</head>
<body>
<h2>Create</h2> @using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Student</legend> <div class="editor-label">
@Html.LabelFor(model => model.uName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.uName)
@Html.ValidationMessageFor(model => model.uName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.uMark)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.uMark)
@Html.ValidationMessageFor(model => model.uMark)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
</body>
</html>
3,修改视图
@model test.Models.tb_name
@{
ViewBag.Title = "Update";
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Modify</title>
<style type="text/css">
#tblist
{
border: 1px solid #0094ff;
width: 600px;
margin: 10px auto;
border-collapse: collapse;
} #tblist th, td
{
border: 1px solid #0094ff;
padding: 10px;
}
</style>
</head>
<body>
@using (Html.BeginForm("Update", "Index", FormMethod.Post))
{
<table id="tblist">
<tr>
<td colspan="2">修改:@Html.HiddenFor(a => a.Id)</td>
</tr>
<tr>
<td>课程名称</td>
<!--使用HtmlHepler,直接从model获取数据赋值给下拉框-->
<td>@Html.DropDownListFor(a => a.Id, ViewBag.classList as IEnumerable<SelectListItem>)</td>
</tr>
<tr>
<td>学生姓名</td>
<!--使用HtmlHepler,直接从model获取数据赋值给文本框-->
<td>@Html.TextBoxFor(a => a.uName)</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="确定修改">@Html.ActionLink("返回", "Index", "Index")</td>
</tr>
</table>
}
</body>
</html>
4,控制器
public class IndexController : Controller
{ testEntities db = new testEntities();
//
// GET: /Index/ public ActionResult Index()
{
testEntities db = new testEntities();
List<Models.tb_name> list = (from d in db.tb_name select d).ToList();
ViewData["DataList"] = list;
return View();
} /// 根据学生ID删除学生
/// </summary>
/// <param name="id">学生ID</param>
/// <returns></returns>
[HttpGet]
public ActionResult Del(string id)
{
testEntities db = new testEntities();
int ids = Convert.ToInt32(id);
tb_name modelDel = new tb_name() { Id = ids };
db.tb_name.Attach(modelDel);
db.Entry<tb_name>(modelDel).State = System.Data.EntityState.Deleted;
db.SaveChanges();
return RedirectToAction("Index", "Index");
} /// <summary>
/// 根据学生编号修改学生
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public ActionResult Update(string id)
{
int ids = Convert.ToInt32(id);
tb_name ts = (from a in db.tb_name where a.Id == ids select a).FirstOrDefault();
IEnumerable<SelectListItem> listItem = (from c in db.tb_name select c).ToList().Select(c => new SelectListItem { Value = c.Id.ToString(), Text = c.uName }); ViewBag.classList = listItem;
return View(ts); } [HttpPost]
/// <summary>
/// 保存要修改的数据
/// </summary>
/// <param name="id">要修改的学生ID</param>
/// <returns></returns>
public ActionResult Update(tb_name ts)
{
DbEntityEntry<tb_name> entry = db.Entry<tb_name>(ts);
entry.State = System.Data.EntityState.Unchanged;
entry.Property(a => a.uName).IsModified = true;
entry.Property(a => a.Id).IsModified = true;
db.SaveChanges();
return RedirectToAction("Index", "Index");
} public ActionResult Add()
{
return View("Add");
} /// <summary>
/// 添加
/// </summary>
/// <returns></returns>
[HttpPost]
public ActionResult Add(tb_name student)
{
try
{
if (ModelState.IsValid)
{
EntityState statebefore = db.Entry(student).State; //Detached
db.tb_name.Add(student);
EntityState stateAdd = db.Entry(student).State; //Added
db.SaveChanges();
EntityState stateafter = db.Entry(student).State;//Unchanged
return RedirectToAction("Index");
}
}
catch
{
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); }
return View(student);
}
}
MVC test的更多相关文章
- Asp.Net Mvc 使用WebUploader 多图片上传
来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...
- .Net Core MVC 网站开发(Ninesky) 2.4、添加栏目与异步方法
在2.3中完成依赖注入后,这次主要实现栏目的添加功能.按照前面思路栏目有三种类型,常规栏目即可以添加子栏目也可以选择是否添加内容,内容又可以分文章或其他类型,所以还要添加一个模块功能.这次主要实现栏目 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- ASP.NET Core MVC/WebAPi 模型绑定探索
前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...
- ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入
原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...
- 开源:Taurus.MVC 框架
为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...
- Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)
背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...
- Taurus.MVC 2.0 开源发布:WebAPI开发教程
背景: 有用户反映,Tausus.MVC 能写WebAPI么? 能! 教程呢? 嗯,木有! 好吧,刚好2.0出来,就带上WEBAPI教程了! 开源地址: https://github.com/cyq1 ...
- 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus
最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
随机推荐
- Ubuntu环境下的Redis 配置与C++使用入门
Redis是一个高性能的key-value数据库. Redisedis的出现,非常大程度补偿了memcached这类key/value存储的不足,在部分场合能够对关系数据库起到非常好的补充作用.它 ...
- fpga该驱动器调试dev_dbg 无输出
近期需要调试fpga驾驶,整个是非常蛋疼.dev_dbg 我想用这个作为没有成功调试输出,它已被彻底打垮! 反射... 现在基于以下设置是不相关的打印,和网上说的有些出入,问题还得研究下. 驱动程序调 ...
- 两种计算和输出n内5要么9除尽互惠
#include<stdio.h> int main() { int i=0,n=0; float fSum=0; scanf("%d", &n); for ( ...
- Contoso 大学 - 使用 EF Code First 创建 MVC 应用,实例演练
Contoso 大学 Web 示例应用演示了如何使用 EF 技术创建 ASP.NET MVC 应用.示例中的 Contoso 大学是虚构的.应用包括了类似学生注册.课程创建以及教师分配等功能. 这个系 ...
- java_Timer_schedule jdk自带定时器
定时器经常在项目中用到,定制执行某些操作,比如爬虫就需要定时加载种子等操作,之前一直用spring的定制器近期做项目发现,jdk有很简单的提供 代码如下 1 /* * Copyright (c) 20 ...
- 基于ip san的iscsi操作执行过程
SAN它是storage area network(存储区域网络)速记,早期san光纤通道技术被用于.当迟到iscsi协议后出现,为了在这两者之间区分.它分IP SAN和FC SAN.FC SAN由于 ...
- LeetCode: Best Time to Buy and Sell Stock II [122]
[题目] Say you have an array for which the ith element is the price of a given stock on day i. Design ...
- Arcgis For Android之GPS定位实现
翻开曾经做的东西,看了看,非常多从逻辑上比較乱,对之做了改动,完毕后实现的效果为: MapActivity源码例如以下: package com.lzugis.map; import java.io. ...
- PHP_零基础学php_3PHP函数、传参函数、默认参数、函数返回值
<?php function say_hello() //无参数 { $name="tang"; echo "hello,".$name; echo &q ...
- C++中public,protected,private访问
对于公有继承方式: (1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员:(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员:(3 ...