业务逻辑中的验证-ASP.NET Web表单

业务逻辑中的验证-ASP.NET Web表单,asp.net,asp.net-mvc,validation,webforms,separation-of-concerns,Asp.net,Asp.net Mvc,Validation,Webforms,Separation Of Concerns,在阅读ASP.NET MVC时,我遇到了一些非常好的验证示例,其中业务规则与模型关联,UI仅显示错误集并标记与无效输入关联的表单元素。我认为把这个逻辑放在一个地方而不是让每个表单都执行它自己独特的验证是非常有意义的 是否可以通过ASP.NET Web应用程序项目(webforms)以优雅的方式实现这种分离?我可以将验证规则保存在业务逻辑层中,并且可以使用执行验证并返回一组错误的方法。但是我想不出一个好方法来标记UI端有问题的控件 在MVC中,表单元素和模型通过属性名隐式链接。ASP.NET中的U

在阅读ASP.NET MVC时,我遇到了一些非常好的验证示例,其中业务规则与模型关联,UI仅显示错误集并标记与无效输入关联的表单元素。我认为把这个逻辑放在一个地方而不是让每个表单都执行它自己独特的验证是非常有意义的

是否可以通过ASP.NET Web应用程序项目(webforms)以优雅的方式实现这种分离?我可以将验证规则保存在业务逻辑层中,并且可以使用执行验证并返回一组错误的方法。但是我想不出一个好方法来标记UI端有问题的控件


在MVC中,表单元素和模型通过属性名隐式链接。ASP.NET中的UI是否应引用模型的唯一属性名称(作为ID/name或作为自定义属性)?UI是否可以访问手动生成的控件名到属性名的映射?

我肯定记得有人说.NET 4.0中的WebForms可以对数据注释进行一些改进,但在尝试在线搜索之后,我开始觉得我梦寐以求

虽然我确实找到了一个“自己滚”的家伙的帖子:


我喜欢的一种方法是创建CustomValidator,绑定到屏幕上的控件,并在OnServerValidate事件中调用我的BL验证。这样,我的验证逻辑就停留在一个地方


希望这能有所帮助

对延迟回复表示抱歉-这两个答案都为如何处理这一问题提供了一些有价值的见解。我认为最好的回应可能是转向MVC…:)当然,转移到MVC也是一个非常好的选择(我目前正在这样做,这让人耳目一新)。