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();
}
示例一:
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();
}
相关文章推荐
- MVC 3 数据验证 Model Validation 详解
- asp.net MVc 数据验证
- ASP.NET MVC 数据验证
- ASP.NET MVC数据验证
- 【转载】MVC中 数据底层联合JQUERY实现动态的安全的验证机制
- MVC 数据验证
- MVC 数据验证
- MVC Post数据 统一权限验证问题
- ASP.NET MVC 2中的数据验证
- ASP.NET MVC 入门 -- 8、ModelState与数据验证
- MVC-Model数据注解(三)-Remote验证的一个注意事项
- 数据注解和验证 – ASP.NET MVC 4 系列
- Asp.net MVC 数据注解与验证
- 【转】METADATATYPE的使用,MVC的MODEL层数据验证
- MVC 数据验证
- ASP.NET MVC 入门8、ModelState与数据验证
- ASP.NET MVC 入门8、ModelState与数据验证
- 深入浅出 MVC 数据验证 2.0 [附演示源码]
- MVC 数据验证
- MVC 数据验证[转]