1
在我看來,我有:EditorFor在viewModel中將值傳遞給POST控制器,但DisplayFor和HiddenFor不?
@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」包含發件人的空值。 DisplayFor同樣。我怎樣才能讓HiddenFor工作?
'DisplayFor'不寫出的輸入元件,所以其值將不會在POST中。這不是它的目的。至於'HiddenFor',Model.Sender'確實有價值嗎?你能否檢查隱藏字段是否在你的標記(瀏覽器內)中呈現出來,以及它是否有價值? – 2013-03-27 18:39:25
啊,好的。我剛剛檢查過,當我使用HiddenFor時,它正在渲染髮件人。 vm確實包含具有EditorFor()的其他屬性,但vm.Sender爲null。 – SB2055 2013-03-27 18:43:44
@AntP - 回覆以上 – SB2055 2013-03-27 18:45:10