AJAX 表单上的流畅验证
我正在 ASP.net MVC 中创建一个操作/视图,我想使用 AJAX / jQuery 进行 POST。 我正在使用 Fluent Validation 在视图模型中进行验证。
当我这样做时是否可以进行客户端验证?为了使用流畅验证触发客户端验证,脚本会是什么样子?
我是否创建一个常规表单并使用 jquery 创建一个提交事件并调用某些内容,或者只是使用 Ajax.BeginForm() 来代替?
I am creating an action/view in ASP.net MVC that I would like to POST using AJAX / jQuery.
I am using Fluent Validation for the validation in my view models.
Is it possible to have client side validation when I do this? What would the script look like in order to trigger this client side validation using fluent validation?
Do I create a regular form and create a submit event using jquery and call something or would I just Ajax.BeginForm() instead?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用带有数据注释的 jQuery 不显眼验证,但看起来您需要与我相同的设置(下面的前两个选项)加上另一个步骤:
对于前两个,请参阅 启用客户端验证< /a>.对于最后一个,请参阅 Fluent 验证:与 ASP.NET MVC 集成。
如果您想通过 AJAX 提交表单,您可以使用
$('#form_selector').valid()
触发整个表单的验证,或使用$(' 触发单个输入的验证#input_selector').valid()
。如果验证成功,则对 valid() 的调用将返回 true(否则返回 false)。I use the jQuery unobtrusive validation with data annotations but it looks like you need the same settings as me (the first two options below) plus another step:
For the first two, see Enabling Client-Side Validation. For the last one see Fluent Validation: Integration with ASP.NET MVC.
If you want to submit the form via AJAX, you can trigger the validation on the whole form with
$('#form_selector').valid()
or on an individual input with$('#input_selector').valid()
. The calls to valid() return true if the validation is successful (and false if not).Fluent Validation 是一个服务器端验证库。因此,Fluent Validation 支持一些基本的客户端验证(如 required、maxlength 等)。您不能在客户端使用所有服务器端规则。
如果您想向 Fluent Validation 添加完整的客户端支持,则需要在项目中再添加一个库。 表单助手可以解决您的问题。
https://github.com/sinanbozkus/FormHelper
您需要像这样创建表单:
之后您需要将 [FormValidator] 属性添加到您的操作中。
现在,所有 Fluent Validation 规则都可以在客户端运行。
Fluent Validation is a server-side validation library. Because of this, Fluent Validation supports some basic client-validations (like required, maxlength etc.) You can't use all server-side rules on client-side.
If you want to add fully client-side support to Fluent Validation, you need to add one more library to your project. Form Helper can be a solution for your problem.
https://github.com/sinanbozkus/FormHelper
You need to create your forms like this:
After that you need to add [FormValidator] attribute to your action.
Now all Fluent Validation rules work on client-side.