在MVC 4中進行客戶端驗證我正在構建基於ASP.NET MVC 4
的應用程序,並儘可能遵循標準Internet模板中的代碼。使用jQuery 1.10.2
昨天我開始實施我的表格,並注意到我沒有得到客戶端驗證,並且總是提交內容。
我呈現的形式是這樣的:
@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")
然後,在螢火,當我提交一個不正確的表單我得到以下錯誤:
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
的新版本配合使用而製作了自定義的jQuery.val*
腳本。
我的問題是 - 是否有客戶端驗證的標準打包/捆綁包,我可以添加到我的項目中並使用更新版本的jQuery
(我現在使用的版本是1.10.2)?我是否需要爲我的客戶端驗證部分使用jQuery 1.7.*
,或者現在MS
(如使用knockout.js
這是標準模板的一部分進行驗證)或者甚至可能還有其他用於MVC項目中客戶端驗證的js庫?