У меня есть простая форма входа в систему, основанная на следующем элементе модели
public class LogOnModelItem
{
[Required(ErrorMessage="Brukernavn er påkrevd")]
[DisplayName("Brukernavn")]
public string UserName { get; set; }
[Required(ErrorMessage="Passord er påkrevd")]
[DataType(DataType.Password)]
[DisplayName("Passord")]
public string Password { get; set; }
[DisplayName("Husk meg?")]
public bool RememberMe { get; set; }
}
Вид:
<h2>Login</h2>
<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>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<table>
<tr>
<td>@Html.LabelFor(model => model.UserName)</td>
<td>
@Html.EditorFor(model => model.UserName)
@Html.ValidationMessageFor(model => model.UserName)
</td>
</tr>
<tr>
<td>@Html.LabelFor(model => model.Password)</td>
<td>
@Html.EditorFor(model => model.Password)
@Html.ValidationMessageFor(model => model.Password)
</td>
</tr> <tr>
<td>@Html.LabelFor(model => model.RememberMe)</td>
<td>
@Html.EditorFor(model => model.RememberMe)
@Html.ValidationMessageFor(model => model.RememberMe)
</td>
</tr>
</table>
<p>
<input type="submit" value="Create" />
</p>
}
Контроллер:
public ActionResult Login(LogOnModelItem lmi)
{
return View(lmi);
}
Когда я загружаю это в браузер, проверка запускается при загрузке страницы. Затем он выделяет имя пользователя и пароль красным цветом, а сообщение об ошибке выдается после каждой строки. У меня есть 3 вопроса в порядке важности:
1: Как сделать так, чтобы проверка не выполнялась до тех пор, пока пользователь не нажмет кнопку подтверждения.
2: Как отобразить сводку проверки?
3: Как мне сделать поле "username" выбранным по умолчанию и готовым принять ввод?
Ответ на # 1:
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(LogOnModelItem lmi)
{
return View(lmi);
}
Ответ на # 2
@Html.ValidationSummary(false)
Ответ на # 3
<script type="text/javascript">
$(document).ready(function () {
$('#UserName').focus();
});
</script>