Что делает UpdateModel ()?

С точки зрения непрофессионала, что делает 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; }
}
11
задан tereško 13 August 2012 в 05:40
поделиться