Это происходит потому, что изначально все помощники HTML обращаются к ModelState при привязке, а затем в самой модели. Поэтому, если вы намереваетесь изменить какое-либо значение, которое было частью запроса POST, вам сначала нужно удалить его из ModelState, если вы хотите, чтобы это изменение было отражено в представлении:
[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
// We remove the Bar property that was part of the request because
// we modify its value here
ModelState.Remove("Bar");
model.Bar = "Some modified value";
return View(model);
}
Предполагается, что в соответствующем представлении у вас есть поле ввода для него:
@Html.EditorFor(x => x.Bar)