MVC-数据验证

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="&#27880;&#20876;" />
</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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值