2013-11-28 2 views
2

Я создаю приложение на основе 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 ?

ответ

2

Я столкнулся с аналогичной проблемой проверки jQuery с 1.10.2 (я бы получил «Uncaught SyntaxError: Unexpected token u»). Я добавил пакет jQuery.Migrate и исправил его. Я считаю, что ошибка возникает из-за изменения в parseJSON.

Смежные вопросы