在我看来,我有:
@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)
{...
viewModel:
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工作?
答案 0 :(得分: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);
}
}