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。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 回答