Когда вызывается Action
, платформа создает ModelStateCollection
на основе значений строки запроса, пост-данных, значений маршрутизации и т. Д. И это ModelStateCollection
будет передано View
. Все помощники ввода HTML пытаются получить значения из ModelStateCollection
first , прежде чем пытаться получить значения из фактической модели.
Поскольку вашей входной моделью является int id
, а выходной моделью является какая-то новая модель, помощники будут использовать значения из ModelStateCollection
(из строки запроса), поскольку имена свойств Id
совпадают.
Чтобы это работало, вы должны вручную очистить ModelStateCollection
перед возвратом новой модели в представление:
public ActionResult SomeAction(int Id){
//Id is set to 2
ModelState.Clear();
var model = //get some thing from db using Id(2);
//Now model.Id is set to 9;
return View(model);
}