1

私の見解では:

@Html.EditorFor(m => m.Contact, new{style="width: 650px"})

コントローラ:

[HttpGet]
        public ActionResult Backflip()
        {
            // TODO: Make sure name is what we expect
            var contact = getContact();
            return View(new BackflipViewModel(contact));
        }

 [HttpPost]
    public ActionResult Broadcast(BackflipViewModel vm)
    {...

ビューモデル:

public class BackflipViewModel
{

    public BackflipViewModel()
    {
    }

    public BackflipViewModel(Contact contact)
    {
        Sender = contact;
    }

    public Contact Sender { get; set; }

}

私は本当にhiddenForが欲しいだけですが、@Html.HiddenFor(m => m.Sender)を試してみると、POSTコントローラーメソッドの「vm」にSenderのnull値が含まれています。DisplayFor についても同様です。HiddenFor を機能させるにはどうすればよいですか?

4

1 に答える 1

2

これはHiddenFor- とは異なりEditorFor- が複雑なオブジェクトのフィールド セット全体を生成できないためです。

代わりに、次のようなことを行う必要があります。

モデルを見る

public string SenderId { get; set; }

意見

@Html.HiddenFor(m => m.SenderId)

コントローラ

[HttpPost]
public ActionResult Broadcast(BackflipViewModel vm)
{
    If (ModelState.IsValid)
    {
        Sender sender = getContact(Model.SenderId);
    }
}
于 2013-03-27T19:02:49.783 に答える