asp.net mvc:TryUpdateModel返回值还是ModelState.IsValid?

chr*_*ris 3 asp.net-mvc modelbinders

在我的活页夹中进行验证,我想知道是否需要检查返回值.在下面的选项1中,案例1和案例2是否会有所不同?TryUpdateModel似乎不会返回true,但ModelState.IsValid为false.

选项1:

  if (TryUpdateModel(editItem, new string[] { "Field" }))
  {
    if (ModelState.IsValid)
    {
    } else {
    // Invalid model case 1
  }
  } else {
    // Invalid model case 2
  }
Run Code Online (Sandbox Code Playgroud)

选项2:

  TryUpdateModel(editItem, new string[] { "Field" }))
  if (ModelState.IsValid)
  {
  } else {
    // only one invalid model case 
  }
Run Code Online (Sandbox Code Playgroud)

Cra*_*ntz 12

TryUpdateModel源代码的最后一行是:

        return ModelState.IsValid;
Run Code Online (Sandbox Code Playgroud)

......几乎可以回答你的问题.:)