Чтобы добавить к Манафу правильный ответ - вы правильно заметили, что проблема возникает в действиях контроллера, которые обрабатывают сообщения.Я получил ту же проблему в действии контроллера, которое обрабатывает get, когда я явно передаю модель представлению:
[HttpGet]
ActionResult SearchForSomething(SearchForm searchForm)
{
searchForm.MyId = SomeValueFromSession;
return View("SearchForSomething", searchForm);
}
В представлении эта строка, которая отображала скрытый ввод для MyId, всегда отображала "0":
@Html.HiddenFor(m => m.MyId);
По предложению Даррена Остера я перешел на следующее и исправил проблему:
[HttpGet]
ActionResult SearchForSomething(SearchForm searchForm)
{
searchForm.MyId = SomeValueFromSession;
ModelState.Clear();
return View("SearchForSomething", searchForm);
}