使用ASP.NET MVC登录页面。我正在使用DevExtreme小部件。
当我输入用户名/密码并单击“登录”按钮时,控件将转到“登录”操作,我看到<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body bgcolor='black'>
<canvas id="myCanvas" oncl></canvas>
<p id="demo" style="color: white" oncl></p>
</body>
</html>
为ModelState.IsValid
,
原因是,ModelState显示错误:
记得我吗?字段是必需的。
我检查了我的ViewModel,我发现它没有按要求标记该字段。奇怪的是,当我第二次单击“登录”按钮时,它工作正常,ModelState.IsValid为true !!
这是我的ViewMode
false
问题是,为什么需要它以及为什么它在第二次点击时起作用。
这是我视图中的代码
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源代码中的代码
@Html.DevExtreme().CheckBoxFor(m => m.RememberMe).Text(Html.DisplayNameFor(m => m.RememberMe).ToString())
答案 0 :(得分:1)
始终需要null
属性(除非bool?
,否则不能.Value()
。
除非您专门设置DevExtreme CheckBoxFor()
方法的value="null" in the hidden input that is generated by the plugin
属性,否则会使用null
对其进行初始化。如果您没有点击该复选框,则会发布ModelState
并导致LoginViewModel
生效。
假设您将@Html.DevExtreme().CheckBoxFor(m => m.RememberMe)
.Value(Model.RememberMe)
.Text(Html.DisplayNameFor(m => m.RememberMe).ToString())
的实例传递给GET方法中的视图,那么您可以使用
StreamsConfig.PARTITION_GROUPER_CLASS_CONFIG