验证和检查条件并限制文本框

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>

在我的 A​​ccountController 中,我尝试验证 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; }

您还可以根据需要为复杂密码设置正则表达式。