2012-03-02 80 views
1

我有一個獲取操作,它有幾個參數。鑑於我有一個表單,在獲得行動後填充。 Action使用收到的參數創建一個模型實例,但如果參數具有特殊值,則將操作設置爲對參數進行一些默認值建模。在該動作之後,返回含模型的視圖。 問題是,在View中更改模型後顯示參數的數據,而不是修改後的模型。查看不影響模型更改

回答

3

發生這種情況是因爲,通過設計,所有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) 
+0

其實我使用GET請求,但你的解決方案工作得很好。非常感謝你!最好的祝福。 – Paul 2012-03-02 08:08:40