Я пытаюсь получить свое представление, чтобы дать мне сообщение об ошибке рядом с текстовым полем, если пользователь вводит что-то недействительное (например, строку, где он ожидает число). Вместо этого я получаю уродливую страницу с сообщением о том, что проверка не прошла, когда пользователь нажимает кнопку submit.
Вот часть моего представления:
@model MembershipTest.ViewModels.AddDriverViewModel
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "Add Drivers";
}
@using (Html.BeginForm("AddDriver", "Driver"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Customer Information</legend>
<table>
<tr>
<td>
@Html.Label("First Name:")
@Html.TextBoxFor(m => m.Driver.F_Name)
@Html.ValidationMessageFor(m => m.Driver.F_Name)
</td>
<td>
@Html.Label("Gender:")
@Html.RadioButtonFor(m => m.isMaleChecked, "true") Male
@Html.RadioButtonFor(m => m.isMaleChecked, "false")Female
</td>
</tr>
<tr>
<td>
@Html.Label("Last Name:")
@Html.TextBoxFor(m => m.Driver.L_Name)
@Html.ValidationMessageFor(m => m.Driver.L_Name)
</td>
И вот соответствующая часть моей модели:
[Required]
[StringLength(30)]
public string F_Name { get; set; }
[Required]
[StringLength(30)]
public string L_Name { get; set; }
В методе post моего контроллера я обязательно использую
if (ModelState.IsValid)
Если пользователю было введено что-то вроде 50 символов в текстовом поле с первым именем, я хочу, чтобы ошибка отображалась с помощью Html.ValidationMessageFor(), когда они выходят из этого текстового поля, чтобы они могли видеть это прежде чем они нажимают кнопку submit. Мне не хватает некоторых jquery, чтобы это произошло? Может быть, какое-то использование заявления, которое мне нужно включить?