【发布时间】:2013-12-14 02:46:34
【问题描述】:
我正在构建一个基于ASP.NET MVC 4 的应用程序,并尝试在可能的情况下遵循标准互联网模板中的代码。
昨天我开始实现我的表单并注意到我没有得到客户端验证并且内容总是被提交。
我这样渲染表单:
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<ul>
<li>
@Html.LabelFor(m => m.Title)
<br />
@Html.TextBoxFor(m => m.Title)
<br />
@Html.ValidationMessageFor(m => m.Title)
</li>
<li>
//more list items here
因为我没有从调试开始,所以我将脚本渲染如下:
@Scripts.Render("~/Scripts/jquery-1.10.2.min.js")
@Scripts.Render("~/Scripts/jquery.validate.min.js")
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js")
然后,在 firebug 中,当我提交不正确的表单时,我收到以下错误:
TypeError: a(...).live is not a function
然后我看到了这个 - Also bear in mind that in jQuery 1.9 the .live() method has been removed which was one of the breaking changes 另一个 SO 问题 here。所以我决定尝试将 jQuery 版本更改为:
@Scripts.Render("~/Scripts/jquery-1.7.1.min.js")
验证开始正常工作。
一些进一步的研究表明,大多数人制作了他们自定义的jQuery.val* 脚本,以便使其与新版本的jQuery 一起工作。
我的问题是 - 是否有用于客户端验证的标准打包/捆绑包,我可以将其添加到我的项目中并与较新版本的 jQuery 一起使用(我现在使用的是 1.10.2)?我是否必须将jQuery 1.7.* 用于我的客户端验证部分,或者现在MS 支持其他东西(例如使用标准模板的一部分knockout.js 进行验证)或者甚至可能是现在用于的其他js 库MVC 项目中的客户端验证?
【问题讨论】:
标签: jquery validation asp.net-mvc-4