Я не вижу этой проблемы слишком часто, но у меня есть .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, но если я не использую эти поля, это не так ... поэтому я предполагаю, что это работает, и если Я не использую их в разметке. Мне нужно отправить их обратно как скрытые значения, чтобы принудительно сохранить постоянство, поскольку я не использую поля x из ViewModel (который бы автоматически сохранял эти поля, если бы я использовал их в форме )