一、目錄的認識 https://www.runoob.com/aspnet/mvc-folders.html 二、約定大於配置 1、方法的名稱與視圖的名稱一致。 2、視圖要放在Views文件下的當前方法所在控制器名稱一致的文件夾內。 三、添加數據 1、如果方法的參數與表單元素name屬性的值一致的話 ...
一、目錄的認識
https://www.runoob.com/aspnet/mvc-folders.html
二、約定大於配置
1、方法的名稱與視圖的名稱一致。
2、視圖要放在Views文件下的當前方法所在控制器名稱一致的文件夾內。
三、添加數據
1、如果方法的參數與表單元素name屬性的值一致的話,會自動填充。
2、如果表單元素name的屬性的值與實體類中屬性的名稱一致,那麼表單中的數據會自動賦值給實體中的屬性。
[HttpPost] public ActionResult Register(UserInfo userInfo) { userInfo.RegTime = DateTime.Now; CRUDDbContext dbContext = new CRUDDbContext(); dbContext.UserInfo.Add(userInfo); if (dbContext.SaveChanges() > 0) { return Content("ok"); } else { return Content("no"); } }
3、同一個方法處理post和get請求,可以使用隱藏域的方式來區分。也可以使用重載方法,然後使用特效標簽[HttpPost]進行區分。
<form method="post" action=""> 姓名:<input type="text" name="Name"/><br /> 密碼:<input type="password" name="Pwd"/><br /> 郵箱:<input type="text" name="Email"/><br /> <input type="submit"value="註冊" /> </form>
public ActionResult Register() { return View(); } [HttpPost] public ActionResult Register(string Name, string Pwd, string Email) { UserInfo userInfo = new UserInfo(); userInfo.Name = Name; userInfo.Pwd = Pwd; userInfo.Email = Email; userInfo.RegTime = DateTime.Now; CRUDDbContext dbContext = new CRUDDbContext(); dbContext.UserInfo.Add(userInfo); if (dbContext.SaveChanges() > 0) { return Content("ok"); } else { return Content("no"); } } }
public class UserInfo { [Key] public int ID { get; set; } [StringLength(32)] [Required] public string Name { get; set; } [StringLength(32)] [Required] public string Pwd { get; set; } [Required] public DateTime RegTime { get; set; } [StringLength(32)] [Required] public string Email { get; set; } }
四、列表展示數據
1、ViewData可以將Controller數據傳遞到View中
public ActionResult Index() { CRUDDbContext dbContext = new CRUDDbContext(); var users = dbContext.UserInfo; ViewData["UserInfo"] = users; return View(); }
<tr><th>編號</th><th>用戶名</th><th>密碼</th><th>註冊時間</th><th>郵箱</th></tr> @{ foreach (var item in (IQueryable<WebApplication1.Models.UserInfo>)ViewData["UserInfo"]) { <tr><td>@item.ID</td><td>@item.Name</td><td>@item.Pwd</td><td>@item.RegTime</td><td>@item.Email</td></tr> } }
五、修改數據
1、通過URL傳遞過來的參數會自動賦值給該方法的參數,但是該方法的參數名稱一定要與路由規則中定義的參數名稱一致,否則出錯。
@{ foreach (var item in (IQueryable<WebApplication1.Models.UserInfo>)ViewData["UserInfo"]) { <tr><td>@item.ID</td><td>@item.Name</td><td>@item.Pwd</td><td>@item.RegTime</td><td>@item.Email</td><td><a href="/UserInfo/[email protected]">詳細</a></td></tr> } }
public ActionResult ShowDetail(int id) { return Content(id.ToString()); }