9

假设我有一个在 MVC 应用程序中使用 [Required] 字段等注释的模型。

它在控制器中非常有效,只需调用 ModelState.IsValid 但说我不在控制器中,并希望在我的模型应用程序的其他地方运行类似的检查。是否有可能以另一种方式调用此功能?

class MyModel{
   [Required]
   public string Name{get;set;}
}

// Code elsewhere in app that isn't the controller
MyModel model = new MyModel();
//Can I run a modelstate.isvalid type check here on model?  Would return false if Name wasn't set
4

1 回答 1

21

是的,TryValidateObject使用.ValidatorSystem.ComponentModel.DataAnnotations

var results = new List<ValidationResult>();
var context = new ValidationContext(model, null, null);
if (!Validator.TryValidateObject(model, context, results))
{
    // results will contain all the failed validation errors.
}
于 2013-06-11T14:50:41.283 回答