我怎样才能只用 ModelState.IsValid 检查一个模型
How can i only check one model with 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
{
//.....
}
}
我已经搜索并尝试将其应用到我的代码中,例如:GetFieldValidationState
、ValidationState
和 Microsoft.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");
}
我试图只用 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
{
//.....
}
}
我已经搜索并尝试将其应用到我的代码中,例如:GetFieldValidationState
、ValidationState
和 Microsoft.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");
}