public class Person
{
[DisplayName("姓名")]
public string Name { get; set; }
[DisplayName("性别")]
public string Gender { get; set; }
[DisplayName("年龄")]
public int? Age { get; set; }
}
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
return View(new Person());
}
[HttpPost]
public ActionResult Index(Person person)
{
Validate(person);
if (!ModelState.IsValid)
{
return View(person);
}
else
{
return Content("输入数据通过验证");
}
}
private void Validate(Person person)
{
if (string.IsNullOrEmpty(person.Name))
{
ModelState.AddModelError("Name", "'Name'是必需字段");
}
if (string.IsNullOrEmpty(person.Gender))
{
ModelState.AddModelError("Gender", "'Gender'是必需字段");
}
else if (!new string[] { "M", "F" }.Any(
g => string.Compare(person.Gender, g, true) == 0))
{
ModelState.AddModelError("Gender",
"有效'Gender'必须是'M','F'之一");
}
if (null == person.Age)
{
ModelState.AddModelError("Age", "'Age'是必需字段");
}
else if (person.Age > 25 || person.Age < 18)
{
ModelState.AddModelError("Age", "有效'Age'必须在18到25周岁之间");
}
}
}
@model Person
<html>
<head>
<title>编辑人员信息</title>
</head>
<body>
@using (Html.BeginForm())
{
@Html.EditorForModel()
<input type="submit" value="保存"/>
}
</body>
</html>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
public class DomainAttribute : ValidationAttribute
{
public IEnumerable<string> Values { get; private set; }
public DomainAttribute(string value)
{
this.Values = new string[] { value };
}
public DomainAttribute(params string[] values)
{
this.Values = values;
}
public override bool IsValid(object value)
{
if (null == value)
{
return true;
}
return this.Values.Any(item => value.ToString() == item);
}
public override string FormatErrorMessage(string name)
{
string[] values = this.Values.Select(value => string.Format("'{0}'", value)).ToArray();
return string.Format(base.ErrorMessageString, name,string.Join(",", values));
}
}
public class Person
{
[DisplayName("姓名")]
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources))]
public string Name { get; set; }
[DisplayName("性别")]
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources))]
[Domain("M", "F", "m", "f", ErrorMessageResourceName = "Domain", ErrorMessageResourceType = typeof(Resources))]
public string Gender { get; set; }
[DisplayName("年龄")]
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources))]
[Range(18, 25, ErrorMessageResourceName = "Range", ErrorMessageResourceType = typeof(Resources))]
public int? Age { get; set; }
}
public class HomeController : Controller
{
//其他成员
[HttpPost]
public ActionResult Index(Person person)
{
if (!ModelState.IsValid)
{
return View(person);
}
else
{
return Content("输入数据通过验证");
}
}
}
public interface IValidatableObject
{
IEnumerable<ValidationResult> Validate( ValidationContext validationContext);
}
public class Person: IValidatableObject
{
[DisplayName("姓名")]
public string Name { get; set; }
[DisplayName("性别")]
public string Gender { get; set; }
[DisplayName("年龄")]
public int? Age { get; set; }
public IEnumerable<ValidationResult> Validate( ValidationContext validationContext)
{
Person person = validationContext.ObjectInstance as Person;
if (null == person)
{
yield break;
}
if(string.IsNullOrEmpty(person.Name))
{
yield return new ValidationResult("'Name'是必需字段", new string[]{"Name"});
}
if (string.IsNullOrEmpty(person.Gender))
{
yield return new ValidationResult("'Gender'是必需字段", new string[] { "Gender" });
}
else if (!new string[]{"M","F"}.Any( g=>string.Compare(person.Gender,g, true) == 0))
{
yield return new ValidationResult("有效'Gender'必须是'M','F'之一", new string[] { "Gender" });
}
if (null == person.Age)
{
yield return new ValidationResult("'Age'是必需字段", new string[] { "Age" });
}
else if (person.Age > 25 || person.Age < 18)
{
yield return new ValidationResult("'Age'必须在18到25周岁之间", new string[] { "Age" });
}
}
}
public interface IDataErrorInfo
{
string Error { get; }
string this[string columnName] { get; }
}
public class Person : IDataErrorInfo
{
[DisplayName("姓名")]
public string Name { get; set; }
[DisplayName("性别")]
public string Gender { get; set; }
[DisplayName("年龄")]
public int? Age { get; set; }
[ScaffoldColumn(false)]
public string Error { get; private set; }
public string this[string columnName]
{
get
{
switch (columnName)
{
case "Name":
{
if(string.IsNullOrEmpty(this.Name))
{
return "'姓名'是必需字段";
}
return null;
}
case "Gender":
{
if (string.IsNullOrEmpty(this.Gender))
{
return "'性别'是必需字段";
}
else if (!new string[] { "M", "F" }.Any(
g => string.Compare(this.Gender, g, true) == 0))
{
return "'性别'必须是'M','F'之一";
}
return null;
}
case "Age":
{
if (null == this.Age)
{
return "'年龄'是必需字段";
}
else if (this.Age > 25 || this.Age < 18)
{
return "'年龄'必须在18到25周岁之间";
}
return null;
}
default: return null;
}
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有