С точки зрения непрофессионала, что делает UpdateModel()
, а также TryUpdateModel()
?Кажется, я не могу найти (в SO или в Интернете) какого-либо четкого объяснения того, что он на самом деле делает (в ясных терминах), просто у людей, имеющих проблемы с его использованием.
IntelliSense VisualStudio мне тоже не помогает.Причина, по которой я спрашиваю, заключается в том, что, скажем, если у меня есть это в моем контроллере:
[HttpPost]
public ActionResult Index( UserViewModel vm, FormCollection form)
{
var statesCheckBoxes = form["StatesList"];
vm.BA.StatesTraveledTo = statesCheckBoxes.Split(',').ToList<string>();
return View(vm);
}
Разве я не обновляю свою модель, установив vm.BA.StatesTraveledTo
?Почему мне нужно запустить UpdateModel?Кроме того, когда я на самом деле пытаюсь сделать следующее:
[HttpPost]
public ActionResult Index( UserViewModel vm, FormCollection form)
{
var statesCheckBoxes = form["StatesList"];
vm.BA.StatesTraveledTo = statesCheckBoxes.Split(',').ToList<string>();
UpdateModel(vm); // IS THIS REDUNDANT TO THE PREVIOUS LINE?
return View(vm);
}
Ничего не происходит в том, что, когда я проверяю значение ModelState (после запуска UpdateModel ()), я не вижу ничего, указывающегочто-нибудь изменилось.Я не вижу новый ключ в словаре ModelState.
Действительно растерян.Спасибо!
Редактировать:
Отправка исходного кода для классов ViewModel и Model:
public class UserViewModel
{
public BankAccount BA { get; set; }
}
public class BankAccount
{
public Person User { get; set; }
public List<string> StatesTraveledTo { get; set; }
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}