2012-04-23 11 views
0

マイSomeModelは次のように定義される:私は作用を有するモデルはHttpPostにどのように埋め込まれていますか?

public class SomeModel 
{ 
    public string property1 { get; set } 
    public bool property2 { get; set; } 
} 

public ActionResult Edit(int id) 
{ 
    SomeModel model = new SomeModel(); 
    //... populate model ... 
    return View(model); 
} 

がビューにproperty1property2property1<input type='text'>としてレンダリングされるであろう場合に@Html.EditorForとしてインスタンス化されているものとしますproperty2<input type='checkbox'>となります。

私が処理するために、以下のコントローラのアクションを持っている場合は、編集フォームから提出:

パラメータモデルが読み込まれますどのよう
[HttpPost] 
public ActionResult Edit(int id, SomeModel model, FormCollection collection) 
{ 
} 

、これまでであれば?

+0

ルックを結合モデルに

@Html.EditorFor(model => model.Property1) @Html.EditorFor(model => model.Property2) 

よりは、MVCモデルにマップしようとするキー名を使用しています。場合によっては問題がある場合は、バインド属性 – Manatherin

+0

を使用して接頭辞を手動で指定することができます。私はあなたの編集メソッドで、モデルだけをパラメータとして追加する必要があると思います。モデルバインダーは、すべての htmlタグとそれらの「名前」と「id」プロパティをチェックし、それらをエンティティにマップします。また、あなたの "編集"メソッド "アクション"に名前をつけているかどうか不安です。 –

+0

@Alex、私は間違いを訂正しました。メソッド名は編集する必要があります。 –

答えて

2

あなたは

[HttpPost] 
public ActionResult Action(SomeModel model) 
{ 
    //do something 
} 

のようなものを使用している場合は、あなたのビューで標準Html.EditorFor構文を使用する場合はをほのめかしてきたように結合すべてのモデルは、あなたのための世話をされます。コレクションキーでhere

関連する問題