您的位置:首页 > 其它

MVC-Controllers 数据验证

2012-09-11 00:03 148 查看
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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: