在我看来,您可以使用 Data Annotations 或Fluent Validation在您的模型(InputModel)上保留基本验证(必填字段、正则表达式字段、比较字段等),并在服务层中进行业务验证。我认为注释更多的是创建屏幕验证和服务器端的输入,而不是业务验证。如果您将业务保留在服务层,您必须记住创建一个ModelState
Wrapper 以将其与 Asp.Net MVC 集成,并将其显示在视图上。
看一下 ModelState Wrapper 的同一个:
public class ModelStateWrapper : IValidationDictionary
{
private ModelStateDictionary _modelState;
public ModelStateWrapper(ModelStateDictionary modelState)
{
_modelState = modelState;
}
#region IValidationDictionary Members
public void AddError(string key, string errorMessage)
{
_modelState.AddModelError(key, errorMessage);
}
public bool IsValid
{
get { return _modelState.IsValid; }
}
#endregion
}