Ненавязчивая проверка клиента в ASP.NET MVC по-прежнему отправляет форму

Я использую ASP MVC 4, и у меня включены параметры приложения ClientValidationEnabled и UnobtrusiveJavaScriptEnabled, но когда я отправляю форму с ненавязчивыми атрибутами данных проверки, она отправляется, даже если она недействительна. Появляется сообщение о проверке, но форма все еще отправляется.

Конечно, в моем браузере включен JavaScript.


person Ido Ran    schedule 08.07.2013    source источник
comment
Проверьте, отсутствуют ли какие-либо скрипты.   -  person Adriano Silva    schedule 08.07.2013
comment
без дополнительной информации очень трудно вам помочь. проверьте, что у вас нет другого javascript-отправления формы, у вас нет конфликтов с библиотекой javascript или, как говорит @AdrianoSilva, вы не пропустили скрипт.   -  person Alexandros B    schedule 08.07.2013


Ответы (2)


Убедитесь, что у вас подключены следующие библиотеки

<script src="~/Scripts/jquery.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>

Проверьте свою конфигурацию. Эти два должны выглядеть следующим образом:

<appSettings>
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
</appSettings>

Не забудьте добавить:

@Html.ValidationMessageFor(m => m.FieldToValidate)
person Andrei    schedule 08.07.2013

Для MVC4 на главной странице добавьте строку ниже

@Scripts.Render("~/bundles/jqueryval")

и убедитесь, что в bundles.config ниже присутствуют строки.

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));

как только вы добавили jquery.unobtrusive, вы столкнетесь с ошибкой ниже.

функция live() больше недоступна в jquery 1.9, которая устарела.

TypeError: $(…).live is not a function

чтобы решить эту проблему, вы можете заменить .live на .On или просто добавить бета-версию из nuget

Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Pre 
person swapneel    schedule 08.07.2013