验证和检查条件并限制文本框
Validate and check for conditions and constrain for text box
我的 Create 视图
中有一个名为 pass 的文本框
<div class="form-group">
@Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control" } })
</div>
在我的 AccountController 中,我尝试验证 8 到 250 个字母之间的密码,当我尝试 运行 网站时,代码似乎无法正常工作, 它 return 错误: 'Cannot perform runtime binding on a null reference'
if (ModelState.IsValid)
{
db.Accounts.Add(account);
if(ViewBag.Password.Length > 8 && ViewBag.Password != null)
{
db.SaveChanges();
return RedirectToAction("Index");
}
else return RedirectToAction("Create");
一般viewbag用于controller向view发送数据。而且你已经有了模型 属性 那么为什么你需要检查 viewbag?。
对于最小和最大长度,您可以使用数据注释并在模型前添加属性 属性。它将在 ModelState.IsValid 处进行检查。你不需要为此做额外的代码。
例如
[MinLength(8,ErrorMessage = "Min length length should be 8"),MaxLength(250,ErrorMessage ="Max length should be 250")]
public string Password { get; set; }
您还可以根据需要为复杂密码设置正则表达式。
我的 Create 视图
中有一个名为 pass 的文本框<div class="form-group">
@Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control" } })
</div>
在我的 AccountController 中,我尝试验证 8 到 250 个字母之间的密码,当我尝试 运行 网站时,代码似乎无法正常工作, 它 return 错误: 'Cannot perform runtime binding on a null reference'
if (ModelState.IsValid)
{
db.Accounts.Add(account);
if(ViewBag.Password.Length > 8 && ViewBag.Password != null)
{
db.SaveChanges();
return RedirectToAction("Index");
}
else return RedirectToAction("Create");
一般viewbag用于controller向view发送数据。而且你已经有了模型 属性 那么为什么你需要检查 viewbag?。
对于最小和最大长度,您可以使用数据注释并在模型前添加属性 属性。它将在 ModelState.IsValid 处进行检查。你不需要为此做额外的代码。
例如
[MinLength(8,ErrorMessage = "Min length length should be 8"),MaxLength(250,ErrorMessage ="Max length should be 250")]
public string Password { get; set; }
您还可以根据需要为复杂密码设置正则表达式。