Я создаю приложение на основе ASP.NET MVC 4
и пытаюсь выполнить код из стандартного интернет-шаблона, где это возможно.Проверка на стороне клиента в MVC 4 с 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.val*
, чтобы заставить его работать с новой версией jQuery
.
Мой вопрос: есть ли стандартный пакет/пакет для проверки на стороне клиента, который я могу добавить в мой проект и использовать с более новой версией jQuery
(тот, который я использую сейчас, 1.10.2)? Должен ли я использовать jQuery 1.7.*
для моих частей проверки клиента или теперь есть что-то еще поддерживаемое MS
(например, проверка с использованием knockout.js
, которая является частью стандартного шаблона) или, возможно, даже другая библиотека js, которая теперь используется для проверки на стороне клиента в проектах MVC ?