2012-03-02 9 views
1

私はいくつかのパラメータを持つgetアクションを持っています。私は、行動を取った後にいっぱいになる形をしている。アクションは受信したパラメータを使用してモデルのインスタンスを作成しますが、パラメータに特殊な値がある場合、アクションはパラメータにも関わらずいくつかのデフォルト値をモデル化します。そのアクションの後、モデルでビューを返します。 問題は、Viewでモデルを変更した後に、変更されたモデルからではなく、パラメータのデータが表示されることです。ビューはモデルの変更に影響しません

答えて

3

これは、設計上、すべてのHTMLヘルパーがModelSateをバインドするときとModelSiteをモデル自体で最初に見るためです。あなたは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

関連する問題