提问人:tina 提问时间:5/7/2013 更新时间:5/7/2013 访问量:3187
我应该在 ASP MVC 中使用不显眼的 JavaScript 而不是编写自己的验证代码吗?
should i use unobtrusive javascript in asp mvc instead of writing my own validation code?
问:
用于客户端验证的 javascript 代码已经从头开始编写,并且非常完美 加工。但是,为了使我们的解决方案更具可扩展性并最大限度地减少行,我们正在考虑将我们的 Javascript 客户端验证替换为内置的 asp MVC 支持,以实现不显眼的 javascript。 但是,在某些情况下,它特别不利。例如,我想用正则表达式验证一个字段。并且该字段不直接绑定到模型。但是要实现不显眼的javascript,我需要将其绑定到我在模型中创建的某些字段,只是为了验证(而不是在我的表单提交中使用它) 有没有办法在不将字段绑定到模型的情况下实现验证? 如果我用不显眼的验证替换 JavaScript 代码,即使不是在所有情况下,也会有什么相当大的优势?
答:
2赞
amhed
5/7/2013
#1
相当大的优势:
- 由于开发人员非常了解不显眼的验证,因此您的代码更容易被其他人理解(以及将来您自己)
- 利用 Html 帮助程序,因此会自动添加验证属性。您编写的代码更少,但可读性更强。
- 您的验证代码不容易出错,因为它是一个开源项目,来自世界各地的人们都参与进来修复错误并提高代码性能。
对解决方案中的所有模型使用不显眼。如果存在未提供现成验证的验证,则始终可以为绑定到模型的属性编写自己的验证函数。
请注意,有许多开源项目扩展了 .net 验证程序属性,例如 MVC FoolProof
最后,如果有些属性未绑定到模型(等等,为什么有些属性未绑定到模型?),则可以为这些属性编写自定义客户端代码。
评论
0赞
tina
5/8/2013
谢谢你的回答。真的很有帮助。我还有一个问题。如果我使用的是不显眼的验证。使用 html helper 的所有绑定都与它一起使用。我知道html.editorfor和html.textboxfor。我可以有html.textbox吗?如果我要使用此验证,我肯定需要将字段绑定到模型,对吗?
0赞
amhed
5/8/2013
我相信只有在使用 EditorFor、TextboxFor 等时才会添加自动 data-val html 属性。
0赞
tina
5/15/2013
我无法使用 textbox 或 textboxfor 添加 data-val 属性。即使我使用 Jquery 添加这些属性,它们也会被添加但不起作用。让我澄清一下。在一个页面上,我有代码<input type=“text” name=“myname” id=“myname” data-val=“true” data-val-regex=“This field must be numeric” data-val-regex-pattern=“^\d+$” value=“”/> <span class=“field-validation-valid” data-valmsg-replace=“true” data-valmsg-for=“myname”></span> 如果这是我直接编码到我的 html 中的东西,它可以工作,但如果这是由 html helper 和 jquery(完全相同的标记)生成的,为什么?
评论