我没有看到这个问题太频繁,但我有一个使用布局的.cshtml。在布局我有:POST后丢失ViewModel数据
@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);
...
}
不知道我需要做什么以及为什么发生这种情况。通常我只是通过autobind成功取回它。在我看来,当模型在标记中通过RAzor被使用时 - 通过返回的ViewModel可以很好地返回,但如果我不使用这些字段,它不会......所以我认为这是如何工作的,如果我不使用它们在标记中我需要将它们作为隐藏值发回,然后强制持久化,因为我没有使用ViewModel中的x字段(如果我已经在表单中使用它们,它会自动保留这些字段)?
那么我们需要看到......代码的其余部分,因为Html.BeginForm只是呈现窗体。发送到动作(和绑定)的内容取决于表单的元素。 – veblock 2012-03-20 00:00:08