【发布时间】:2013-09-05 11:08:54
【问题描述】:
MVC 使用 DataAnnotations 属性的内置模型验证效果很好,并且大大加快了开发速度。然而,在许多情况下,应用程序的表示层无法处理验证,例如检查数据库中已存在的唯一属性值。
我正在寻找满足以下要求的此问题的解决方案:
- 与 NInject(和其他 DI 方法)兼容。
- 不会破坏 SoC。服务层必须完全不知道表示层。
- 是自动的。在(至少)表示层中产生最少的额外代码。想想
[ValidateServiceLayer]的操作方法。 - 坚持DRY原则。最少的代码复制。
- 将验证消息分配给正确的属性(在需要时)。
- 允许在运行之前和之后添加其他验证消息。
这些功能的加分项:
- 优雅地捕获异常并显示用户友好的错误消息。
- 易于使用。 (NuGet 包?)
我对如何自己实现这一点有一些想法,但在我开始发明轮子之前,我想知道它是否已经被其他人完善了。有人遇到过这种情况吗?
【问题讨论】:
-
@PKKG:有趣的是,我之前没有遇到过远程验证。我觉得它并不真正符合我的目的,但我必须更仔细地检查它才能确定。无论如何,在其他情况下可能会非常有用!
标签: c# asp.net-mvc validation asp.net-mvc-4