2018年10月2日 星期二

【ASP.MVC】ModelState 中繼 Clear() 說明

【ASP.MVC】ModelState 中繼 Clear() 說明


ModelState 原理
頁面上資料  post 後 ,會copy 一份給 中繼資料

到後端程式 如果有修改 model 相關欄位的值,return View(model) 到 頁面的話

必需 有兩種方法
1.ModelState.Remove("欄位名")

2.ModelState.Clear(); <-- model="" p="">
以 View 裡面的 接收讀取程式資料 以 ModelState(中繼資料)為優先,再來是 model
所以 在 View 上面 會先判斷 ModelState(中繼資料) 內容是否為空或有值,若空值的話,就會以 return model 資料為準

所以在測試時 ,textbox 我們在 View 上有更改資料,post 到程式端後,又改了 textbox 裡面的值..結果return model 回傳到頁面..結果只會顯示第一次 textbox 的值,原因就在這!

這是 ASP.MVC 上對 ModelState 規則...有些人覺得不好,有些人覺得不好...看個人了.


沒有留言:

張貼留言