为什么需要记住我
Why Remember me is Required
正在处理 ASP.NET MVC 登录页面。我正在使用 DevExtreme 小部件。
当我输入 username/password 并单击登录按钮时,控件转到登录操作,我看到 ModelState.IsValid
是 false
、
原因是,ModelState显示错误:
The Remember me? field is required.
我检查了我的 ViewModel,发现它没有按要求标记该字段。奇怪的是,当我第二次点击登录按钮时,它起作用了而且 ModelState.IsValid 是真的!!
这是我的视图模式
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>
A bool
属性 总是必需的(它不能是 null
除非它是 bool?
)。
除非你专门设置了DevExtremeCheckBoxFor()
方法的.Value()
属性,否则都是用value="null" in the hidden input that is generated by the plugin
初始化的。如果您不单击该复选框,则会发布 null
并导致 ModelState
有效。
假设您在 GET 方法中将 LoginViewModel
的实例传递给视图,那么您可以使用
设置默认值
@Html.DevExtreme().CheckBoxFor(m => m.RememberMe)
.Value(Model.RememberMe)
.Text(Html.DisplayNameFor(m => m.RememberMe).ToString())
正在处理 ASP.NET MVC 登录页面。我正在使用 DevExtreme 小部件。
当我输入 username/password 并单击登录按钮时,控件转到登录操作,我看到 ModelState.IsValid
是 false
、
原因是,ModelState显示错误:
The Remember me? field is required.
我检查了我的 ViewModel,发现它没有按要求标记该字段。奇怪的是,当我第二次点击登录按钮时,它起作用了而且 ModelState.IsValid 是真的!!
这是我的视图模式
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>
A bool
属性 总是必需的(它不能是 null
除非它是 bool?
)。
除非你专门设置了DevExtremeCheckBoxFor()
方法的.Value()
属性,否则都是用value="null" in the hidden input that is generated by the plugin
初始化的。如果您不单击该复选框,则会发布 null
并导致 ModelState
有效。
假设您在 GET 方法中将 LoginViewModel
的实例传递给视图,那么您可以使用
@Html.DevExtreme().CheckBoxFor(m => m.RememberMe)
.Value(Model.RememberMe)
.Text(Html.DisplayNameFor(m => m.RememberMe).ToString())