【发布时间】:2011-02-26 21:14:41
【问题描述】:
除非我遗漏了某些东西(这很有可能),否则在我看来,自定义验证总是违反 DRY。在我看到的所有示例中,即使使用 MVC 3 引入了全新的 Unobtrusive Client Validation,我们也必须为我们的服务器端验证创建 .NET 代码,并为客户端验证创建 jQuery(或 JavaScript 代码)。
我知道没有像 .NET 到 jQuery 的翻译器这样可以促进 DRY 服务器/客户端验证的东西,我想这将是实现真正的 DRY 验证同时在服务器端和客户端工作的唯一方法。
但我会完全满足于始终在服务器上执行自定义验证。需要传递到自定义验证(在我的情况下)的数据通常仅限于一两个字段,并且服务器端逻辑通常非常快,即使它必须访问数据库。
是否没有 OOTB 机制来使用属性连接自定义验证,然后让您的客户端验证使用 Ajax 在服务器端执行验证并响应客户端?或者,有人想出了这样的解决方案吗?
或者说,重复自定义验证的权衡最终是否优于始终执行自定义验证服务器端引入的问题?
提前致谢。
【问题讨论】:
-
@jfar - 在发布此内容之前,我实际上进行了相同的搜索,而且似乎大多数问题都集中在 UI 验证和业务验证的分离上。虽然我最初认为这与自定义客户端验证与自定义服务器端验证大多无关,但我可以看到它们如何(并且可能经常)相关,正如您在回答中提到的那样。
标签: asp.net-mvc validation asp.net-mvc-3 dry