1
我有一個獲取操作,它有幾個參數。鑑於我有一個表單,在獲得行動後填充。 Action使用收到的參數創建一個模型實例,但如果參數具有特殊值,則將操作設置爲對參數進行一些默認值建模。在該動作之後,返回含模型的視圖。 問題是,在View中更改模型後顯示參數的數據,而不是修改後的模型。查看不影響模型更改
我有一個獲取操作,它有幾個參數。鑑於我有一個表單,在獲得行動後填充。 Action使用收到的參數創建一個模型實例,但如果參數具有特殊值,則將操作設置爲對參數進行一些默認值建模。在該動作之後,返回含模型的視圖。 問題是,在View中更改模型後顯示參數的數據,而不是修改後的模型。查看不影響模型更改
發生這種情況是因爲,通過設計,所有HTML幫助程序在綁定之後首先查看ModelState,然後在模型本身之後查看。所以,如果你打算修改一些值是POST的一部分,請你首先需要從ModelState中刪除它,如果你想反映在針對這一變化:
[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
// We remove the Bar property that was part of the request because
// we modify its value here
ModelState.Remove("Bar");
model.Bar = "Some modified value";
return View(model);
}
這是假設在相應的視圖你有一個輸入字段:
@Html.EditorFor(x => x.Bar)
其實我使用GET請求,但你的解決方案工作得很好。非常感謝你!最好的祝福。 – Paul 2012-03-02 08:08:40