尝试使用此解决方案验证AjaxForm ASP.Net MVC Ajax form with jQuery validation,但遇到错误:Uncaught exception: TypeError: Cannot convert '$('MyFrom').validate()' to object
我的发件人:
@using (Ajax.BeginForm("MyFromAction", "Something", null, new AjaxOptions() { OnBegin = "onBeginMyFrom", OnFailure = "onFailureMyFrom", OnSuccess = "onSuccessMyFrom" }, new { @id = "MyFrom" }))
{
}我的表单工作正常并发送到服务器,但是在我使用jQuery验证之后,我得到了上面的错误。
有什么想法吗?
更新:我没有提到我正在使用MVCContrib FluentHtml。
MVCContrib需要此http://weblogs.asp.net/srkirkland/archive/2011/03/08/adding-unobtrusive-validation-to-mvccontrib-fluent-html.aspx来进行不显眼的验证工作。
默认情况下,MvcContrib是否会在下一个版本中支持非侵入式验证?
发布于 2011-05-30 14:43:11
您正在查看的答案与以前版本的ASP.NET MVC相关。在ASP.NET MVC3中,客户端验证是使用jquery validate插件执行的,而且是在一个不显眼的事情上完成的。您不需要为此编写任何代码。因此,第一件事是确保您包含了正确的脚本:
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>然后在web.config中启用这个不显眼的javascript和验证:
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>现在,您可以让AJAX表单正常运行了:
@using (Ajax.BeginForm("MyFromAction", "Competition", null, new AjaxOptions() { OnBegin = "onBeginMyFrom", OnFailure = "onFailureMyFrom", OnSuccess = "onSuccessMyFrom" }, new { @id = "MyFrom" }))
{
...
}表单将在客户端检查验证错误,并且在修复错误之前不会提交。
https://stackoverflow.com/questions/6172969
复制相似问题