我在stackoverflow上发了很多帖子并在网上搜索但仍未找到适合我的解决方案。
我有2个应用程序 - 第一个使用Web表单,另一个使用MVC。 我知道MVC支持模型字段上的数据注释,因此它使我无法在客户端维护验证。
我需要类似的东西也可以在Web表单中使用,我想创建数据注释(或任何其他可行的东西),它将为我的两个应用程序提供服务,而无需在服务器和服务器上维护重复的验证。客户方。
这样的事情甚至可能吗?
答案 0 :(得分:4)
无需在服务器上维护重复验证。客户方。
相反,您需要重复验证:客户端验证和服务器端验证。
好消息是,如果您正确使用ASP.NET的内置验证功能,那么您无需花费大量精力来获得服务器端和客户端数据验证。
在ASP.NET WebForms中,这是通过<asp:RequiredFieldValidator>
之类的“验证控件”完成的 - 它提供了服务器端和客户端验证。通过设置EnableClientScript="True"
来启用客户端验证,start + ((1 + stop - start) * rand())
/ (1 + RAND_MAX)
会自动将必要的Javascript注入您的页面。许多Web开发人员(包括我自己)不喜欢ASP.NET WebForms的这个“功能”,因为它必然意味着你失去了对渲染页面的控制。
在ASP.NET MVC中,还有自动服务器+客户端验证,但它更复杂:您需要添加自己对jQuery的验证库的引用,并在web.config中启用它。有关详细信息,请参阅此文章:https://www.blinkingcaret.com/2016/03/23/manually-use-mvc-client-side-validation/
(顺便说一下,请注意输入数据验证和输入数据验证之间的区别:验证是检查输入数据是否符合必需/可选检查,匹配某些格式(例如日期,货币)和其他“静态”规则而不是例如,需要数据库查找 - 而验证涉及将输入数据与已知数据进行比较,以验证和实施授权规则,存在检查等 - 这些执行成本更高,例如检查数据库或第三方Web服务。)
答案 1 :(得分:0)
嗯.net网络表单之前有验证工具,可以在Toolbox下找到 根据使用数据注释我不是100%你可以使用它我会做的是将所需的引用添加到项目中并尝试使用它。请注意,dataannotation通过名称而不是输入的id绑定输入,因此请尝试将相同的名称输入客户端输入
另一种方式是数据注释使用jquery验证器插件,您可以手动在Web表单中使用