我可以在一个班级内完成吗?
...
using System.Web.Mvc;
...
public static class aaa
{
public static test() {
if (something) ModelState.AddModelError("", "test");
}
}
控制器内部呼叫:
...
public class mycontroler {
public void Index() {
....
aaa.test();
....
}
}
有可能吗?我想控制控制器另一部分中的类内的代码。
答案 0 :(得分:21)
您可以像这样传递模型状态:
public static void test(ModelStateDictionary ModelState)
{
if (something) ModelState.AddModelError("", "test");
}
从你的控制器内部打电话:
aaa.test(ModelState);
答案 1 :(得分:1)
不,你不能。你在Controller中引用的是它的属性,而不是类。您仍然可以将其传递给作为参数调用的方法。
答案 2 :(得分:0)
在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;
}
}