以下是关于C#.net的mvc架构中使用validate.unobtrusive.js的表单验证个人实践,省去了大量的js代码验证,
对于简单的提交表单还是很好的,个人感觉这种验证的理念还是不错的。下面就具体介绍一下使用的步骤:
1、在webconfig的<appSettings>节中设置验证key,开启验证:
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
2、在model中设置字段的验证属性,例如:
/// <summary>
/// 会员账号
/// </summary>
[Required(ErrorMessage = "账号不能为空!")]
[StringLength(50, ErrorMessage = "账号长度应为1-50个字符!", MinimumLength = 1)]
[RegularExpression(@"[a-zA-Z\d_]*", ErrorMessage = "账号只能输入字母、数字和下划线“_”!")]
[Remote("checkAccount", "signUp", ErrorMessage = "账号已存在,换个吧!")]
public string UserAccount { get; set; }
/// <summary>
/// 会员真实姓名
/// </summary>
[Required(ErrorMessage = "姓名不能为空!")]
[StringLength(30, ErrorMessage = "姓名长度应为1-30个字符!", MinimumLength = 1)]
public string TrueName { get; set; }
3、在view中引用js:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
注意我用的这个验证插件,jquery目前貌似只能引用1.4--1.5.1,高版本的如1.7以上验证会失效
4、html代码如下:
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<table>
<tr>
<td class="left"><span class="must">*</span>用户姓名:</td>
<td>
@Html.TextBoxFor(m => m.TrueName, new { @class = "Box Raster_20"})
</td>
<td>
@Html.ValidationMessageFor(m => m.TrueName)
</td>
</tr>
</table>
<input type="submit" value="保存" class="Btn BtnYe90" >
}
就写这么多吧!!!