如何只能使用ModelState.IsValid检查一个模型



我尝试只用ModelState.IsValid检查一个模型一次,之后我想用ModelState.IsValid检查另一个模型,并且我想在一个操作中完成所有操作。让我在下面向你展示我真正想做的事情:

[AllowAnonymous]
[HttpPost]
public async Task<IActionResult> FillingInformation(Company company, Agency agency, List<IFormFile> files, Address address)
{
if (ModelState.IsValid("Company"))//if its possible
{
//.....
}
else if (ModelState.IsValid("Agency"))//if its possible
{
//.....
}
else if (ModelState.IsValid("Address"))//if its possible
{
//.....
}
else
{
//.....
}
}

我已经搜索并尝试将其应用于我的代码,例如:GetFieldValidationStateValidationStateMicrosoft.AspNetCore.Mvc.ModelBinding.ModelValidationState,但我无法很好地应用它们。

我试图编写一个检查ModelState.IsValid的扩展方法,但它仍然检查两个模型,而不是一个。

我正在使用这样的东西。

try {
var context = new ValidationContext(Company, serviceProvider: null, items: null);
var results = new List<ValidationResult>();
if (!Validator.TryValidateObject(Company, context, results, true))
throw new Exception("Check Company info...");
//validate all models
}
catch (Exception e) {
ModelState.AddModelError("", e.Message);
return View("your_view");
}

最新更新