初入码田--ASP.NET MVC4 Web应用开发之二 实现简…
2018-06-22 07:33:08来源:未知 阅读 ()
初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序
初入码田--ASP.NET MVC4 Web应用开发之一 实现简单的登录
2016-07-29
一、创建M002AdminDemo.cs
右键【Models】-->添加-->类
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Ddup.Models { /// <summary> /// 管理员模型演示 /// </summary> public class M002AdminDemo { /// <summary> /// 定义的一个查询所有管理员的方法 /// </summary> /// <returns></returns> public static IEnumerable<T001Admin> GetAll() { DdupEntities db = new DdupEntities(); return db.T001Admin; } /// <summary> /// 定义的一个根据id查找对应管理员的方法 /// </summary> /// <param name="id"></param> /// <returns></returns> public static T001Admin GetById(int id) { DdupEntities db = new DdupEntities(); return db.T001Admin.FirstOrDefault(m => m.Id == id); } } }
二、创建Vm002新增管理员视图模型.cs
右键【ViewModel】-->添加-->类
using System; using System.Collections.Generic; using System.Linq; using System.Web; //调用数据注释所需程序集 using System.ComponentModel.DataAnnotations; namespace Ddup.Models.ViewModel { public class Vm002新增管理员视图模型 { //required表示必填项,ErrorMessage返回错误信息 [Required(ErrorMessage = "{0},不能为空")] //stringlength定义输入字符的范围(max,min,error) [StringLength(20, MinimumLength = 10, ErrorMessage = "请输入{2}至{1}个字符")] //定义属性在页面显示时的名称 [Display(Name = "账号")] public string Account { get; set; } [Required(ErrorMessage = "{0},不能为空")] [StringLength(20, MinimumLength = 10, ErrorMessage = "请输入{2}至{1}个字符")] [Display(Name = "密码")] public string Password { get; set; } [Required(ErrorMessage = "{0},不能为空")] [StringLength(4, MinimumLength = 2, ErrorMessage = "请输入{2}至{1}个字符")] [Display(Name = "姓名")] public string Name { get; set; } /// <summary> /// 定义的 Vm002新增管理员视图模型 该类的一个空构造函数 /// </summary> public Vm002新增管理员视图模型() { Account = ""; Password = ""; //为了后面(Create)演示,此处设置Name初始化值为Ddup Name = "Ddup"; } /// <summary> /// 定义了将新增数据通过EF,插入到数据库中的方法 /// </summary> public void Save() { using (DdupEntities db = new DdupEntities()) { var t001 = new T001Admin() { Account=this.Account, Password=this.Password, Name=this.Name }; db.T001Admin.Add(t001); db.SaveChanges(); } } } }
三、创建C02AdminController.cs控制器
右键【Controllers】-->添加控制器-->空的MVC5控制器
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Ddup.Models; using Ddup.Models.ViewModel; namespace Ddup.Controllers { public class C02AdminController : Controller { /// <summary> /// 使用GetAll()方法,返回所有管理员信息 /// </summary> /// <returns></returns> public ActionResult Index() { return View(M002AdminDemo.GetAll()); } /// <summary> /// 使用GetById()方法,通过传递的id来获取对应管理员的详细信息 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Details(int id) { var model = M002AdminDemo.GetById(id); if (model == null) return View("Error"); return View(model); } /// <summary> /// 定义get的新增action,调用 Vm002新增管理员视图模型 的空构造函数,初始化 /// </summary> /// <returns></returns> public ActionResult Create() { //通过此action,后面再新增页面Name的初始值会和 Vm002新增管理员视图模型 的空构造函数中 //所定义的初始化值一样。 return View(new Vm002新增管理员视图模型()); } /// <summary> /// 定义的post的新增action,在View中表单提交方式为POST时,将通过此action执行操作 /// </summary> /// <param name="model"></param> /// <returns></returns> [HttpPost] public ActionResult Create(Vm002新增管理员视图模型 model) { //try,catch异常捕获 try { //判断模型状态是否有效,此处根据在 Vm002新增管理员视图模型 中对各个属性的数据注释来判断,对应输入的值是否有效 if (ModelState.IsValid) { //调用 Vm002新增管理员视图模型 中所定义的保存方法Save() model.Save(); //return View("Index"); //return Redirect("~/C02Admin/Index"); return RedirectToAction("Index"); } } catch (Exception ex) { //将捕获的异常信息添加到""中,或者注明关键字(如:"Name"),将来在View中对应输出错误信息 ModelState.AddModelError("", ex.Message); } return View(model); } public ActionResult Edit(int id) { var model = M002AdminDemo.GetById(id); if (model == null) return View("Error"); //前台与后台之间的传值方法之一ViewData //将通过id找到的模型数据,传递与视图数据关联的模型 ViewData.Model = model; return View(model); } [HttpPost] public ActionResult Edit(int id, FormCollection collection) { try { if (ModelState.IsValid) { DdupEntities db = new DdupEntities(); var model = db.T001Admin.FirstOrDefault(m => m.Id == id); #region 1.0 更新model的关键字字段值(所有) string[] strArr = collection.AllKeys; TryUpdateModel(model, strArr); #endregion #region 2.0 更新model的关键字字段值(选择要更新关键字字段) //TryUpdateModel(model, new string[] {"Account","Password","Name" }); #endregion db.SaveChanges(); return RedirectToAction("Index"); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } return View(); } public ActionResult Delete(int id) { try { DdupEntities db = new DdupEntities(); ; var t001 = db.T001Admin.FirstOrDefault(m => m.Id == id); if (t001 != null) { db.T001Admin.Remove(t001); db.SaveChanges(); return RedirectToAction("Index"); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } return View(); } } }
四、创建对应的视图
添加返回所有管理员的Index视图
添加返回对应id的管理员Details视图
添加新增视图
添加编辑视图
五、测试下我们所创建的增删改查功能吧
本人属于初学者,如果有何不足,还请见谅,也希望大家多多给意见,谢谢!!!
=================================================================================================
作者:程程程
出处:http://rcddup.cnblogs.com
本文由程程程原创,并发布到博客园,欢迎转载,但必须在文章页面明显位置写明作者和出处,非常感谢!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Asp.Net MVC4通过id更新表单内容的思路详解 2020-03-19
- Asp.Net MVC4中的全局过滤器 2018-09-18
- 输出的数据格式是如何决定的-------Asp.net WebAPI学习笔记 2018-06-22
- 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一) 2018-06-22
- Asp.net MVC4高级编程学习笔记-视图学习第三课Razor页面布局 2018-06-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash