C# 如何仅使用ModelState.IsValid检查一个模型

C# 如何仅使用ModelState.IsValid检查一个模型,c#,asp.net-mvc,modelstate,asp.net-core-5.0,C#,Asp.net Mvc,Modelstate,Asp.net Core 5.0,我试图只用ModelState.IsValid检查一次一个模型,然后我想用ModelState.IsValid检查另一个模型,我想在一个操作中完成这一切。 让我在下面向您展示我真正想做的事情: [AllowAnonymous] [HttpPost] public async Task<IActionResult> FillingInformation(Company company, Agency agency, List<IFormFile> files, Addre

我试图只用
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
    {
        //.....
    }
 }
[AllowAnonymous]
[HttpPost]
公共异步任务填写信息(公司、代理机构、列表文件、地址)
{
if(ModelState.IsValid(“Company”)//如果可能的话
{
//.....
}
else if(ModelState.IsValid(“Agency”)//如果可能的话
{
//.....
}
else if(ModelState.IsValid(“Address”)//如果可能的话
{
//.....
}
其他的
{
//.....
}
}
我已经搜索并尝试将其应用到我的代码中,例如:
GetFieldValidationState
ValidationState
Microsoft.AspNetCore.Mvc.ModelBinding.modelvidationstate
,但我无法很好地应用它们


我试图编写一个扩展方法来检查
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");
}
试试看{
var context=新的ValidationContext(公司、服务提供商:null,项目:null);
var results=新列表();
if(!Validator.TryValidateObject(公司、上下文、结果、true))
抛出新异常(“检查公司信息…”);
//验证所有模型
}
捕获(例外e){
AddModelError(“,e.Message”);
返回视图(“您的视图”);
}

请将您的标记限制为您正在使用的实际框架和版本。例如,您不能同时使用ASP.NET MVC 3和ASP.NET MVC 4以及ASP.NET Core。谢谢您的警告@HereticMonkeyThank!它工作得很好