在阅读ASP.NET MVC时,我遇到了一些很好的验证示例,其中业务规则与模型相关联,UI仅显示错误集并标记与无效输入相关联的表单元素。我认为将这种逻辑保存在一个地方而不是让每个表单都执行自己独特的验证是非常有意义的。
是否可以通过ASP.NET Web应用程序项目(webforms)以优雅的方式实现这种分离?我可以将验证规则保留在业务逻辑层中,我可以使用执行验证的方法并返回一组错误。但我无法找到在UI端标记有问题控件的好方法。
在MVC中,表单元素和模型由属性名称隐式链接。 ASP.NET中的UI是否应引用模型的唯一属性名称(作为ID /名称或自定义属性)? UI是否可以访问手动生成的控件名称到属性名称的映射?
答案 0 :(得分:1)
我确信我记得听过一些关于数据注释的改进可以用于.NET 4.0中的WebForms,但在尝试在线搜索之后,我开始认为我梦想过它。
虽然我确实找到了一个“推出自己的”的帖子:
http://adventuresdotnet.blogspot.com/2009/08/aspnet-webforms-validation-with-data.html
答案 1 :(得分:1)
我喜欢这样做的方法是创建CustomValidators,绑定到屏幕上的控件,然后在OnServerValidate事件中调用我的BL验证。这样,我的验证逻辑就停留在一个地方。
希望它会有所帮助