[英]Change model property in post request asp.net mvc
我有一個問題。
這是一個簡短的例子。 這是模特。
public class MyModel
{
string Title{get;set;}
}
在視圖中我寫
@Html.TextBoxFor(model => model.Title)
這是控制器。
public ActionResult EditNews(int id)
{
var model = new MyModel;
MyModel.Title = "SomeTitle"
return View("News/Edit", model);
}
//for post
[HttpPost]
public ActionResult EditNews(MyModel model)
{
//There is problem.When I do postback and
// change Title in this place,Title doesn't change in view textbox
//Only when I reload page it change.
model.Title = "NEWTITLE"
return View("News/Edit", model);
}
它不會改變,因為默認情況下(許多人認為這是一個錯誤)當你返回相同的視圖時,MVC將忽略你在HttpPost
對模型所做的更改。 相反,它在ModelState
查找最初提供給視圖的值。
為了防止這種情況,您需要清除ModelState
,您可以通過以下操作在HttpPost
的頂部執行:
ModelState.Clear();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.