如何解决当使用jQuery验证g ASP.NET MVC 3.0 AjaxForm时出现错误
|| 尝试使用此解决方案通过jQuery验证来验证AjaxForm ASP.Net MVC Ajax表单,但出现错误: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才能进行Unobtrusive验证工作。
默认情况下,MvcContrib是否在下一版本中支持不干扰验证?
解决方法
您正在寻找的答案与ASP.NET MVC的早期版本有关。在ASP.NET MVC 3中,客户端验证是使用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\" }))
{
...
}
该表格将在客户端检查验证错误,并且只有在纠正错误后才会提交。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。