Проверка на стороне клиента MVC 4 показывает неправильное сообщение
У меня есть приложение MVC 4, использующее проверку на стороне клиента. Форма, с которой я борюсь, имеет несколько обязательных полей, но я получаю одно и то же сообщение проверки для каждого поля.
Код бритвы выглядит так:
<section class="input-label-group"> @Html.Html5TextBoxFor(m => m.Email, InputTypes.InputType.Email, htmlAttributes: new { autofocus = "autofocus", autocomplete = "off"}) @Html.ValidationMessageFor(m => m.Email) </section> <section class="input-label-group"> @Html.Html5TextBoxFor(m => m.FullName, InputTypes.InputType.Text, htmlAttributes: new { autocomplete = "off" }) @Html.ValidationMessageFor(m => m.FullName) </section>
Модель выглядит так:
[Display(Name = "Email")] [Required(ErrorMessage = "Please enter a valid email address")] [StringLength(128, ErrorMessage = "The email address may not exceed 128 characters")] public string Email { get; set; } [Display(Name = "Full Name")] [Required(ErrorMessage = "Please enter the user's full name")] [StringLength(255, ErrorMessage = "The user's name may not exceed 255 characters")] public string FullName { get; set; }
Но, глядя на ответ сервера при начальной загрузке страницы (то есть до запуска любого javascript), я получаю следующее:
<section class="input-label-group"> <input autocomplete="off" autofocus="autofocus" data-val="true" data-val-length="The email address may not exceed 128 characters" data-val-length-max="128" data-val-required="Please enter a valid email address" id="Email" name="Email" placeholder="Email" type="email" value="" /> <span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span> </section> <section class="input-label-group"> <input autocomplete="off" data-val="true" data-val-length="The email address may not exceed 128 characters" data-val-length-max="128" data-val-required="Please enter a valid email address" id="FullName" name="FullName" placeholder="Full Name" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="FullName" data-valmsg-replace="true"></span> </section>
Обратите внимание, что атрибуты данных для второго элемента управления относятся к электронной почте, а не к полному имени. Это приводит к появлению проверочных сообщений в окончательной форме (с использованием jquery.validate.js и еще jquery.validate.unobtrusive.js) при отправке пустых полей выглядеть так:
Неверное Сообщение Проверки
Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)
Почему?