最近真的越寫MVC越上癮了
雖然因為很不熟一直卡
但是做出來的成就感特別好
有些東西做出來但是還是有些詳細的原理還需了解
終於做到需要開始CRUD了
首先針對會員資料做更動
最先遇到的是修改欄位後有些欄位不更新
找了兩篇相當好的文章 點我 點我
使用TryUpdateModel有10個多型能使用
重點再於第四個參數
為不更新的欄位名稱
沒輸入密碼時不更新>
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(int Id, AccountEdit Form) { if (ModelState.IsValid) { Account query = db.Account.Find(Id); List有個特別的地方就是要輸入時才更新密碼部份list = new List (); // 沒打 是空時 時不更新 if (Form.Password == null || Form.Password.ToString().Equals("")) { list.Add("Password"); } if (TryUpdateModel(query,"",null,list.ToArray())) { try { // 有打時 不是空 這段必需要寫在TryUpdateModel if (Form.Password != null && !Form.Password.ToString().Equals("")) { query.Password = PublicFunction.EncodeStringMD5(Form.Password); } db.SaveChanges(); } catch (Exception ex) { string e = ex.Message.ToString(); throw; } return RedirectToAction("Index"); } return View(query); } return View(Form); }
原本寫在TryUpdateModel外面感謝保哥指導
"TryUpdateModel會蓋掉 model的資料"
"因為他在這時後才做 Model Binding"
所以要寫在TryUpdateModel裡面
參考網址
點我
點我
微軟官方