MVC-数据验证

    技术2022-05-19  20

    ViewData有一个ModelState的属性,这是一个类型为ModelStateDictionary的ModelState类型的字典集合。在进行数据验证的时候这个属性是比较有用的。在使用Html.ValidationMessage()的时候,就是从ViewData.ModelState中检测是否有指定的KEY,如果存在,就提示错误信息。

    示例一: MVC默认验证模式. Index.asp Code <%=Html.ValidationSummary() %><%using (Html.BeginForm()){ %><table><tr><td>用户名:</td><td><%=Html.TextBox("UserName") %><%=Html.ValidationMessage("UserName") %></td></tr><tr><td>邮箱:</td><td><%=Html.TextBox("Email") %><%=Html.ValidationMessage("Email")%></td></tr><tr><td>密码:</td><td><%=Html.Password("Password") %><%=Html.ValidationMessage("Password")%></td></tr><tr><td>确认密码:</td><td><%=Html.Password("confirmPassword") %><%=Html.ValidationMessage("confirmPassword")%></td></tr><tr><td></td><td>    <input type="submit" value="注册" /></td></tr></table><%} %>

    Controller Code

    public ActionResult Index(){    ViewData["title"] = "用户注册";    return View();}[AcceptVerbs(HttpVerbs.Post)]public ActionResult Index(string UserName, string Email, string Password, string confirmPassword){    ViewData["title"] = "用户注册";    if (String.IsNullOrEmpty(UserName))    {        ModelState.AddModelError("UserName""用户名不能为空");    }    string email="^[a-zA-Z][a-zA-Z0-9._-]*@([a-zA-Z0-9-_]+//.)+(cn|com|gov|net|com//.cn|edu//.cn)$";    if (String.IsNullOrEmpty(Email) || !Regex.IsMatch(Email, email))    {        ModelState.AddModelError("Email""邮箱不能为空或格式不对");    }    if (Password == null || Password.Length <= 6)    {        ModelState.AddModelError("Password""密码不能为空或长度不能小于6位");    }    if (!String.Equals(Password, confirmPassword))    {        ModelState.AddModelError("_FORM""两次密码不一致");    }    if (ViewData.ModelState.IsValid)    {//验证通过则进行相应的动作    }    return View();}

    最新回复(0)