初入碼田--ASP.NET MVC4 Web應用之創建一個空白的MVC應用程式 初入碼田--ASP.NET MVC4 Web應用開發之一 實現簡單的登錄 2016-07-29 一、創建M002AdminDemo.cs 右鍵【Models】-->添加-->類 二、創建Vm002新增管理員視圖模型.cs ...
初入碼田--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
本文由程程程原創,併發布到博客園,歡迎轉載,但必須在文章頁面明顯位置寫明作者和出處,非常感謝!