【问题标题】:Validation in n-tier asp.net mvc applicationsn 层 asp.net mvc 应用程序中的验证
【发布时间】:2010-12-30 21:55:00
【问题描述】:

我正在寻找一些有关在 asp.net mvc n 层应用程序中进行验证的最佳实践的实用/理论信息。

我正在开发一个 .Net 应用程序,它分为以下几层:

UI -> Mvc3

BLL 层 -> 所有业务规则。通过接口与数据访问和UI层解耦

DAL 层 -> 使用存储库模式、EF4 和 pocos 进行数据访问

现在,我正在寻找一种好的、干净和透明的方式来指定我的验证规则。 到目前为止,这里有一些关于这个问题的想法:

UI 验证应该只对用户输入及其有效性负责。 BLL 验证应该处理有关应用程序业务规则的数据的有效性。

我主要关心的是如何以最有效的方式绑定 BLL 和 UI 验证。我想避免的一个想法是让 UI 检查一组验证并将手动错误添加到 ModelState。此外,我不想将 ModelState 传递给要在其中填充的 BLL。

我将不胜感激。

附:是否应将此问题标记为讨论?

【问题讨论】:

    标签: validation asp.net-mvc-3 n-tier-architecture


    【解决方案1】:

    您的 BLL 层可能会以某种标准形式返回验证错误,例如 Dictionary<string, string> 或其他一些自定义构建类型。控制器从视图接收视图模型,因此默认模型绑定器调用此视图模型的验证。如果此验证通过,接下来是业务规则。视图模型映射到模型并传递给服务层。如果出现业务错误,服务将返回一组错误,这些错误可以使用控制器上的扩展方法从控制器插入到ModelState。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 2017-07-09
      • 2018-09-06
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多