我在用着数据注释验证我的模型类。我还编写了一些自定义属性。最终,模型被推送到在 ASP.NET MVC 中构建的 Web 界面,但我希望保持关注点的清晰分离,因此模型类有自己的程序集(也将由控制台应用程序使用)。必须使用IClientValidatable
模型层中的接口(这是一个网络问题)打破了我想要的松散耦合。有想法该怎么解决这个吗?谢谢。
您可以为数据注释属性添加适配器。
例如,您有 MyValidationAttribute。
您需要添加适配器,如下所示:
public class MyValidationAttributeAdapter : DataAnnotationsModelValidator<MyValidationAttribute>
{
public MyValidationAttributeAdapter(ModelMetadata metadata, ControllerContext context, MyValidationAttribute attribute) : base(metadata, context, attribute)
{
}
public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
{
//return client rule here
return base.GetClientValidationRules();
}
}
在应用程序的某处开始添加代码,注册此适配器:
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(MyValidationAttribute), typeof(MyValidationAttributeAdapter));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)