asp.net mvc2 数据验证方法
1.在MODEL定义一下attribute,通常包括:
[Required(ErrorMessage="stu no is not null")]
[StringLength(10,ErrorMessage="length is invalid")]
public global::System.String stuNo
{
get
{
return _stuNo;
}
set
{
if (_stuNo != value)
{
OnstuNoChanging(value);
ReportPropertyChanging("stuNo");
_stuNo = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("stuNo");
OnstuNoChanged();
}
}
}
[Required(ErrorMessage="can not be null")]
public global::System.String name
{
get
{
return _name;
}
set
{
OnnameChanging(value);
ReportPropertyChanging("name");
_name = StructuralObject.SetValidValue(value, true);
ReportPropertyChanged("name");
OnnameChanged();
}
}
Required:必须输入,不能为空
StringLength:字符串的长度不能大于设置的长度
Range:数字的可输入范围
RegularExpression:正则表达式匹配
2.VIEW代码:
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.stuNo) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.stuNo) %>
<%: Html.ValidationMessageFor(model => model.stuNo) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.name) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.name) %>
<%: Html.ValidationMessageFor(model => model.name) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.classId) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.classId) %>
<%: Html.ValidationMessageFor(model => model.classId) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
3.controller判断一下:
[HttpPost]
public ActionResult Create(Student s)
{
if (ModelState.IsValid)
{
svm.AddStudent(s);
return Index();
}
else
{
return View("Create");
}
}