У меня есть список выбора, который заполняет, предоставляет пустое значение в качестве первой опции в следующей строке. Значение = "0" Показать = "Выбрать тип клиента"
<%= Html.DropDownList("Customer.CustomerType", Model.CustomerTypes, "Select a customer type", new { style = "width:200px" })%>
Проблема в том, что когда я выбираю любую опцию (скажем, 1 или 2 или 3) - ЗА ИСКЛЮЧЕНИЕМ ПЕРВОГО ("0") - мой объект обновляется правильно.
Я публикую на
public ActionResult New(Customer customer)
с скажем 2 как одно новое значение (ранее это было 1). Я не использую объект Customer, переданный в перегрузку.
Внутри нового метода, я получаю клиента от
CustomerViewModel inProgress = Session[REGISTRATION_SESSION_KEY] as CustomerViewModel;
Когда я тогда запускаю линию
TryUpdateModel<CustomerViewModel>(inProgress);
объект inProgress изменяется с 1 на 2 (правильно).
Но когда я изменяю с 2 на 0 (опция «Выбрать тип клиента»), inProgress показывает 2 в качестве исходного значения, а после TryUpdateModel остается равным 2.
Единственный обходной путь - получить правильное значение от «клиента», переданного из формы в перегрузку, и выполнить этот хак.
if (customer.CustomerType == 0)
inProgress.Customer.CustomerType = 0;
Почему это?