簡単に言えば、何をするのUpdateModel()
ですTryUpdateModel()
か?私は(SOまたはWeb上で)それが実際に何をするのか(明確な言葉で)の明確な説明を見つけることができないようです.それを使用するのに問題がある人だけです.
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; }
}