【发布时间】:2012-03-19 23:52:06
【问题描述】:
我不经常看到这个问题,但我有一个使用布局的 .cshtml。在我得到的布局中:
@using (Html.BeginForm(null, null, FormMethod.Post, new { @class = "someCssClass", @id = "UserForm" }))
{
...rest of the code
}
我使用此布局的主 .cshtml 像往常一样在顶部定义了模型:
@model CarViewModel
@{
Layout = "~/Views/Shared/_CarLayout.cshtml";
}
当它返回到我的操作方法时,我得到模型的所有值的空值:
public ActionResult Cars(CarViewModel model)
{
carBL.RemoveCars(model.CarIds, model.DealerId);
...
}
不确定我需要在这里做什么以及为什么会发生这种情况。通常我只是通过自动绑定成功取回它。在我看来,当模型通过标记中的 RAzor 使用时 - 使用返回的 ViewModel 可以很好地回发,但如果我不使用这些字段,它不会......所以我认为这就是它的工作原理,如果我不在标记中使用它们我需要将它们作为隐藏值发回然后强制持久化,因为我没有使用 ViewModel 中的 x 字段(如果我在表单中使用它们会自动持久化这些字段)?
【问题讨论】:
-
好吧,我们需要看到
... rest of the code,因为 Html.BeginForm 只是呈现表单。发送到操作(和绑定)的内容由表单的元素决定。