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

Может кто-нибудь сказать мне, почему проверка на стороне клиента не работает в моем приложении MVC 4.

_layout.schtml
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

В моем web.config у меня есть:


   
   

На моей странице login.cshtml у меня есть:

@using (Html.BeginForm())
{
    

        
            
                @Html.LabelFor(x => x.AgreementNumber)
                <br>
                @Html.TextBoxFor(x => x.AgreementNumber, new { size = "30" })
                <br>
                @Html.ValidationMessageFor(m => m.AgreementNumber)
                <br>
                <br>
            
            
                @Html.LabelFor(x => x.UserName)
                <br>
                @Html.TextBoxFor(x => x.UserName, new { size = "30" })
                <br>
                @Html.ValidationMessageFor(m => m.UserName)
                <br>
                <br>
            
            
                @Html.LabelFor(x => x.Password)
                <br>
                @Html.PasswordFor(x => x.Password, new { size = "30" })
                <br>
                @Html.ValidationMessageFor(m => m.Password)
                <br>
                <br>
            
        

    

    
        
            @Html.CheckBoxFor(m => m.RememberMe)
            @Html.LabelFor(m => m.RememberMe, new { @class = "checkbox" })
        
    

    <br>

    <br>
    
        Forgot login-info? clik <a class="link" href="@Url.Action(" index",="" "credentials")"="">here.</a>
    

}

В нижней части страницы входа в систему:

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

JavaScript включен в моем браузере. В шаблонном проекте MVC 4 из Visual Studio валидация клиента работает отлично.

Запустив приложение, на странице входа в систему при просмотре исходного кода я вижу, что это отображается:

number
<br>

<br>
<span class="field-validation-valid" data-valmsg-for="AgreementNumber" data-valmsg-="" replace="true"></span>

и в этом внизу:





Свойства моей модели аннотированы:

public class LogonModel : ModelBase
{
    [MyRequired("AgreementNumberRequiredProperty")]
    [MyDisplay("AgreementNumberLabel")]
    public string AgreementNumber { get; set; }

    [MyRequired("UserNameRequiredProperty")]
    [MyDisplay("UserNameLabel")]
    public string UserName { get; set; }

    [MyRequired("PasswordRequiredProperty")]
    [DataType(DataType.Password)]
    [MyDisplay("PasswordLabel")]
    public string Password { get; set; }

    [MyDisplay("RememberMeCheckBox")]
    public bool RememberMe { get; set; }
}

MyRequired это класс, производный от обычного RequiredAttribute. Причина в том, что мои сообщения об ошибках локализуются путем переопределенияFormatErrorMessage(string name) методRequiredAttribute учебный класс. И все работает нормально - мои ярлыки и сообщения об ошибках локализованы.

MyRequired.cs
public class MyRequiredAttribute : RequiredAttribute
{
    private readonly string _errorMessagekey;

    public MyRequiredAttribute(string errorMessage)
    {
        _errorMessagekey = errorMessage;
    }

    public override string FormatErrorMessage(string name)
    {
        var translation = HttpContext.Current.Session["translation"] as LocalisationHelper;

        return translation != null ? translation.Translate(_errorMessagekey) : ErrorMessage;
    }
}

Я установил точку останова в версии POST моего метода действия входа в систему, и его ударили. Форма отправляется на сервер, где происходит проверка на стороне сервера. Проверка на стороне клиента не выполняетсяэто случилось.

Что мне не хватает?

Спасибо.

Ответы на вопрос(19)

Ваш ответ на вопрос