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 ...
随机推荐
- T4模板使用技巧
=============C#.Net 篇目录============== 示例代码:示例代码__你必须懂的T4模板:浅入深出.rar (一)什么是T4模板? T4,即4个T开头的英文字母组合:Tex ...
- lambda 表达式 自定义查询
遇到 这样的 问题 常用 EF . 实现 like 用 Contains("asd") 搞定 他生成的是 %asd% . 如果 我希望 生成 asd%,怎么搞呢? Start ...
- jmgraph前端画图组件(html5版)
原文:jmgraph前端画图组件(html5版) jmgraph是一个基于html5的WEB前端画图组件. 前端画图对象控件化,支持鼠标和健盘事件响应,可对单个控件样式设定,支 ...
- nginx 查看并发连接数
这里仅仅说一下用命令查看(也可配置页面) 通过查tcp连接数 1.netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]} ...
- SQL点滴27—性能分析之执行计划
原文:SQL点滴27-性能分析之执行计划 一直想找一些关于SQL语句性能调试的权威参考,但是有参考未必就能够做好调试的工作.我深信实践中得到的经验是最珍贵的,书本知识只是一个引导.本篇来源于<I ...
- ViewPaper实现轮播广告条
使用V4包中的viewPaper组件自己定义轮播广告条效果. 实现viewpaper的滑动切换和定时自己主动切换效果. 上效果图 布局文件 <RelativeLayout xmlns:andro ...
- 在linux中如何调试C语言程序
在Linux下面可以使用下面几种形式对C语言进行调试: 1 gdb gdb program 这是最原始的调试方法,若非熟悉命令行,这种方式其实是比较麿人的.有兴趣的可以参考一些我之前的博文.http: ...
- 布尔逻辑运算,goto语句
布尔逻辑 bool类型可以有两个值:true或者false. 布尔比较需要使用布尔比较运算符(关系运算符),下图:var1为布尔类型的变量,var2,var3则可以是不同类型.
- JS中通过call方法实现继承
原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1999/xhtml"& ...
- C# 如何生成CHM帮助文件
原文:C# 如何生成CHM帮助文件 前一段时间应公司要求,让我开发一个数据库字段信息CHM帮助文件生成软件.结果当时我就二了,这个东西我只用过,不知道咋做啊.没想到老大很随意说一句:"没事, ...