MVC:我可以在控制器中使用ModelState吗?

我可以这样做吗?

... using System.Web.Mvc; ... public static class aaa { public static test() { if (something) ModelState.AddModelError("", "test"); } } 

内部控制器调用:

 public class mycontroler { public void Index() { .... aaa.test(); .... } } 

可能吗? 我想控制控制器另一部分中的类内部的代码。

您可以像这样传递模型状态:

 public static void test(ModelStateDictionary ModelState) { if (something) ModelState.AddModelError("", "test"); } 

并从您的控制器内部调用:

 aaa.test(ModelState); 

不,你不能。 你在Controller中引用的是它的属性 ,而不是类。 您仍然可以将其传递给作为参数调用的方法。

在ASP.NET Core 2中运行良好:

 //Controller if (MyValidator.SaveValidation(model, ModelState)) { myManager.Update(model); return Json(new { responseText = "Saved" }); } //Validator public static class SaveDossierValidator { public static bool SaveValidation(MyModel model, ModelStateDictionary modelState) { if (model.property == null) { modelState.AddModelError("property", "Error message"); } return modelState.IsValid; } }