asp.net-mvc-3 – ASP.Net MVC 3不显眼的验证不适用于部分视图
我已经设置了一个部分视图,其中包含自己的表单标记,如下所示:
<tr> @using (Html.BeginForm("Create")) { <td> @Html.TextBoxFor(model => model.Date) @Html.ValidationMessageFor(model => model.Date) </td> <td> @Html.TextBoxFor(model => model.Amount) @Html.ValidationMessageFor(model => model.Amount) </td> <td> @Html.TextBoxFor(model => model.Tags) @Html.ValidationMessageFor(model => model.Tags) </td> <td> @Html.EnumDropDownListFor(model => model.Type) </td> <td> <input type="submit" value="Add" /> @Html.ValidationSummary(true) </td> } </tr> 我使用@ Html.Action(“Create”)在页面上渲染它(它是表格的一部分,因此是< tr>标记. 由于一些奇怪的原因,我的客户端验证不起作用,我首先看到发布时的错误. 部分视图和客户端验证有什么特别之处吗? 我已经包含以下脚本: <script src="/Scripts/jquery.1.5.1.min.js" type="text/javascript"></script> <script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script> <script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script> 编辑 我只是试着把这个脚本扔到页面上: jQuery('form').submit(function () { alert(jQuery(this).valid()); }); 它警告’true’,因此客户端验证脚本肯定存在,并且由于某种原因它不检查有问题的字段: – / 编辑2 我已将页面的整个源代码(HTML JS)上传到pastebin:http://pastebin.com/GvqLW495 解决方法
编辑:
我刚才意识到,看着你的代码,你正在使用jQuery 1.5.1(我假设).NET提供了jQuery.validate.不幸的是,这两个人还没有合作.你必须前往使用最新jQuery的here to grab a version(你需要使用1.4.4).如果这不起作用,我仍然建议检查下面的解决方案. 我有类似的问题(虽然我不确定它是完全相同的问题).我写了关于解决方案in this blog post.不幸的是,我不能确定你有同样的问题,但它值得一试. 基本上,它归结为我在加载PartialViews后必须调用此行(尽管我是通过AJAX加载它们,这是我认为导致问题): $.validator.unobtrusive.parse($("#validation")); 有关详细信息,请参阅博客文章.希望它可以帮助你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – 重新挑战ASP.NET Core中经过身份
- 框架-.NET:ASP.NET MVC
- asp.net-mvc – 是否可以将大量数据从控制器传递
- asp.net-mvc – 具有自定义重定向的AuthorizeAtt
- asp.net – 当onclientclick为false时,停止oncli
- asp.net-mvc-3 – Azure ACS – 最佳实践实施
- asp-classic – ASP页面中的msxml3.dll错误“800
- asp.net-mvc-4 – 在ActionFilterAttribute验证时
- asp.net-mvc-3 – 如何从控制器设置布局
- asp.net-mvc-3 – 如何在Razor中创建一个else if