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的更多相关文章

  1. Asp.Net Mvc 使用WebUploader 多图片上传

    来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...

  2. .Net Core MVC 网站开发(Ninesky) 2.4、添加栏目与异步方法

    在2.3中完成依赖注入后,这次主要实现栏目的添加功能.按照前面思路栏目有三种类型,常规栏目即可以添加子栏目也可以选择是否添加内容,内容又可以分文章或其他类型,所以还要添加一个模块功能.这次主要实现栏目 ...

  3. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  4. ASP.NET Core MVC/WebAPi 模型绑定探索

    前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...

  5. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

  6. 开源:Taurus.MVC 框架

    为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...

  7. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

  8. Taurus.MVC 2.0 开源发布:WebAPI开发教程

    背景: 有用户反映,Tausus.MVC 能写WebAPI么? 能! 教程呢? 嗯,木有! 好吧,刚好2.0出来,就带上WEBAPI教程了! 开源地址: https://github.com/cyq1 ...

  9. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

  10. .NetCore MVC中的路由(2)在路由中使用约束

    p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...

随机推荐

  1. 【翻译】C#和.NET核心快速参考

    原文:[翻译]C#和.NET核心快速参考 PS:在网上看到的一篇C#总结,英文的,总结的还可以,都是基础知识,翻译给大家学习.文章结尾有英文原版.发布地址:http://www.cnblogs.com ...

  2. 【Hibernate步步为营】--映射合集汇总

    前几篇文章具体讨论了对象模型到关系模型的转化方法,对映射关系做了具体的了解,Hibernate将对象模型转化为对应的关系模型是通过使用对应的映射来完毕的(相同也能够使用注解),对于对象之间的关系的转化 ...

  3. Html5 の 微信飞机大战

    (function () { var imageUrl = "images/"; //获取画布对象 var c = $("#game-box").get(0); ...

  4. Python的html和xml解析库Beautiful Soup

    网站:http://www.crummy.com/software/BeautifulSoup/ 版权声明:本文博主原创文章,博客,未经同意不得转载.

  5. 刚学unity3d,跟着仿作了flappy bird,记下一些琐碎的心得!

    1.关于场景,即scene. 一个正常的游戏至少要有三个场景,即菜单(或者文件夹)场景.游戏关卡场景.游戏结束场景.它们一般统一放在project文件夹下scene文件夹(自己创建)中,方便管理. 1 ...

  6. 从WebBrowser中取得Cookie 和 WebClient设置cookie!

    原文:从WebBrowser中取得Cookie 和 WebClient设置cookie! 从WebBrowser中取得Cookie 的代码 CookieContainer myCookieContai ...

  7. bootstrap-wysiwyg 结合 base64 解码 .net bbs 图片操作类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  8. java之JAVA异常

    异常的分类 1. 编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系.         此类异常在处理时必须进行声明或进行捕捉         这 ...

  9. MySQL的C语言编程(一)

    原文:MySQL的C语言编程(一) 初学MySQL,记录一下MySQL用c语言编程时遇到的问题. 这是我的源程序: int main(void) { MYSQL *mysql=NULL; if((my ...

  10. 高德地图教程_poi搜索和显示

    通过高仿深圳的应用近期打算.UI我们已经做了,我见过APP查询界面.关闭网络也将是能够查询其指示数据被存储在数据库中,或者是第一网络,所有网站上的数据是好了.我想简单地使用查询地图提供了. 曾经是接触 ...