Подтвердить что ты не робот

Проверка MVC 4 на стороне клиента не работает

Попытка изучить основы ASP.net MVC и не могу понять, почему моя проверка на стороне клиента не работает.

У меня это в обоих файлах web.config(1 является глобальным 1 в папке представлений)

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

У меня это в моем _layout.cshtmlfile

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js")
@Scripts.Render("~/Scripts/jquery.validate.min.js")

Это моя модель просмотра, для которой регистрация тестирования:

public class RegisterVM
    {
        [Required(ErrorMessage="Username Required")]
        public string username { get; set; }

        [RegularExpression(@"((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})")]
        [Required(ErrorMessage="Password Required")]
        public string password { get; set; }

        [Compare("password", ErrorMessage="Passwords do not match")]
        public string passwordConfirm { get; set; }
    }

И это мой html

@using(@Html.BeginForm()){

    @Html.LabelFor( model => model.username)
    @Html.EditorFor( model => model.username)
    @Html.ValidationMessageFor( model => model.username)<br />

    @Html.LabelFor( model => model.password)
    @Html.PasswordFor( model => model.password)
    @Html.ValidationMessageFor( model => model.password)<br />

    @Html.LabelFor( model => model.passwordConfirm)
    @Html.EditorFor( model => model.passwordConfirm)
    @Html.ValidationMessageFor( model => model.passwordConfirm)<br />

    <input type="submit" value="Register" />


}

Не хочу публиковать здесь, ive читать несколько тем, связанных здесь, но can not, кажется, исправить мои проблемы, когда я нажимаю submit, чтобы делать сообщения/получать запросы.

4b9b3361

Ответ 1

Похоже, это должно работать, я думаю, вам нужно загрузить validate.min.js перед validate.unobtrusive.min.js

Ответ 2

У меня была аналогичная проблема, и единственное, что исправлено, это вручную вызвать

 $.validator.unobtrusive.parse($('form'));

прежде чем нажать кнопку отправки.

Я, наконец, положил его в обратный вызов документа.

$(function () {
    $.validator.unobtrusive.parse($('form'));
});

Ответ 3

На вашей странице у вас есть две строки внизу страницы

Пожалуйста, внимательно ознакомьтесь с

@section Scripts {
 @Scripts.Render("~/bundles/jqueryval")
}

Ответ 4

Это потому, что вы не загружаете jquery.validate.min.js перед ненавязчивым.

Ответ 5

$('#divParent').load("url",
                     function () {
                     $.validator.unobtrusive.parse($('form'));}
                );

Примечание. Это необходимо, если вы динамически загружаете "форму" или "PartialView" внутри "div" с помощью ajax-вызовов

Ответ 6

Вам нужно просто сослаться на эти файлы на каждой странице, которую нужно проверить моим друзьям!

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