【发布时间】:2013-03-27 18:35:57
【问题描述】:
在我看来,我有:
@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 工作?
【问题讨论】:
-
DisplayFor不会写出输入元素,因此其值不会出现在 POST 中。这不是它的目的。至于HiddenFor,Model.Sender肯定有价值吗?您能否检查隐藏字段是否在您的标记(浏览器内)中呈现出来以及它是否具有值? -
啊,好的。我刚刚检查过,当我使用 HiddenFor 时它正在渲染发件人。 vm 确实包含具有 EditorFor() 的其他属性,但 vm.Sender 为空。
-
@AntP - 以上回应
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4