Работа на странице входа ASP.NET MVC. Я использую виджеты DevExtreme. Когда я ввожу имя пользователя/пароль и нажимаю кнопку «Войти», элементы управления переходят к действию «Войти», и я вижу, что ModelState.IsValid
это false
,
Причина в том, что ModelState показывает ошибку:
Запомнить меня? Поле, обязательное для заполнения.
Я проверил свою ViewModel и вижу, что она не пометила поле как требуется. Странно то, что когда я нажимаю кнопку «Войти» во второй раз, она работает, и ModelState.IsValid имеет значение true!!
Это мой режим просмотра
public class LoginViewModel
{
[Required]
[Display(Name = "Email")]
[EmailAddress]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
Вопрос в том, зачем это нужно и почему срабатывает по второму клику.
Это код на мой взгляд
@Html.DevExtreme().CheckBoxFor(m => m.RememberMe).Text(Html.DisplayNameFor(m => m.RememberMe).ToString())
Это код в исходнике html
<div id="devextreme2"></div>
<script>
jQuery(function($){
$("#devextreme2").dxCheckBox({
"name": "RememberMe",
"value": null,
"text":"Remember me?",
"inputAttr": {"id":"RememberMe"}
});
});
</script>
name="RememberMe"
, но вы установили для него значениеnull
(или значение, отличное отtrue
илиfalse
). И всегда требуетсяbool
(это не может бытьnull
) - person   schedule 17.12.2017"value": null,
. - person   schedule 17.12.2017