所以我有兩個單獨的模型:ModelA
和ModelB
。我也有一個ViewModel:TheViewModel
。 TheViewModel
包含ModelA
以及ModelB
的實例。如何使用ASP.NET MVC驗證單個ViewModel中的多個獨立模型?
ModelA
和ModelB
有它們各自的屬性和[Required
] s。但是,當我發佈表單時,TheViewModel
僅驗證ModelA
並忽略ModelB
如何使用一個ViewModel驗證多個模型?
一些代碼片段:
MODELA
public class ModelA
{
[Required]
public string TheID { get; set; }
public string TheName { get; set; }
}
ModelB
public class ModelB
{
[Required]
public string TheCode { get; set; }
public string TheType { get; set; }
}
TheViewModel
public class TheViewModel
{
public ModelA ModelAExample { get; set; }
public ModelB ModelBExample { get; set; }
}
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(TheViewModel vm)
{
if (ModelState.IsValid)
{
return RedirectToAction("Index", "Home");
}
return View(vm.ModelAExample, vm.ModelBExample));
}
的ModelState中只會驗證如果ModelA
的TheID
屬性是有效的,而不是在TheCode
ModelB
你還應該包括'[必需]'在類'TheViewModel'兩個屬性。當你說'ModelState.IsValid'在不應該的時候返回true時,'TheCode'的值是什麼?最後,您應該將變量'vm'傳遞給'View'方法,因爲View需要1個模型而不是多個模型。 – Igor