【问题标题】:Validation in the business logic - ASP.NET Web Forms业务逻辑中的验证 - ASP.NET Web 窗体
【发布时间】:2009-10-07 13:05:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: asp.net asp.net-mvc validation webforms separation-of-concerns


    【解决方案1】:

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

    希望对你有帮助

    【讨论】:

    • 抱歉延迟响应 - 这两个答案都为如何解决这个问题提供了一些有价值的见解。我认为最好的回应可能就是转向 MVC ...... :)
    • 当然,迁移到 MVC 也是一个非常好的选择(我目前正在这样做,它令人耳目一新)。
    【解决方案2】:

    我确定我记得听说过一些关于数据注释的改进可用于 .NET 4.0 中的 WebForms,但在尝试在线搜索后,我开始认为我在做梦。

    虽然我确实发现了一个“自己动手”的人的帖子:

    http://adventuresdotnet.blogspot.com/2009/08/aspnet-webforms-validation-with-data.html

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2011-09-03
      • 1970-01-01
      相关资源
      最近更新 更多