2

私は次の設定をしています

public class Profile
{
    //Some Properties

    //Some Methods
}

/*Model Class*/
public class LineItem
{
    public Profile Profile {get;set;}
}

私のコントローラーで。次の2つのアクションがあります

public ActionResult GetRequest(){

    LineItem model = new LineItem();
    model.Profile = new Profile(){/*Initialize Properties*/};
    return View(model);
}

public ActionResult PostRequest(LineItem item(){
      item.Profile ....  /*Profile Is Null*/
      return View(...);
}

LineItemモデルクラスのProfileプロパティがGetRequestで設定され、ビューに返されることを確認しましたが、そのモデルが送信されたときにその複雑なプロパティを永続化する方法を知りたいです。人々は通常、モデルの永続化に非表示のフィールドを使用し、セッションも利用できることを知っていますが、モデルの複雑なプロパティを永続化するようにModelBinderに時々(おそらく属性またはアノテーションを介して)指示できるはずです。

これはどのように行うことができますか?

4

1 に答える 1

3

@Html.HiddenFor(model => model.Profile.Id) @Html.HiddenFor(model => model.Profile.Name)永続化する必要がある Model.Profile の各プロパティに etc. を使用できます。モデル バインダーには手を触れないでください。標準のモデル バインダーを使用して自動的にバインドされます。他の html ヘルパーを使用すると、一部のプロパティの入力タグが生成され@Html.HiddenFor()ます。このプロパティには使用しないでください。

于 2012-06-06T18:22:02.767 に答える