如何使用数据注释对模型进行条件验证?ASP.NET MVC条件验证
例如,让我们说我们有以下的模型(人,高级):
public class Person
{
[Required(ErrorMessage = "*")]
public string Name
{
get;
set;
}
public bool IsSenior
{
get;
set;
}
public Senior Senior
{
get;
set;
}
}
public class Senior
{
[Required(ErrorMessage = "*")]//this should be conditional validation, based on the "IsSenior" value
public string Description
{
get;
set;
}
}
而以下几种观点:
<%= Html.EditorFor(m => m.Name)%>
<%= Html.ValidationMessageFor(m => m.Name)%>
<%= Html.CheckBoxFor(m => m.IsSenior)%>
<%= Html.ValidationMessageFor(m => m.IsSenior)%>
<%= Html.CheckBoxFor(m => m.Senior.Description)%>
<%= Html.ValidationMessageFor(m => m.Senior.Description)%>
我想是 “Senior.Description”属性条件必需字段基于选择“IsSenior”propery(true - > required)。如何在ASP.NET MVC 2中使用数据注释实现条件验证?
我最近问过类似的问题:http://stackoverflow.com/questions/2280539/custom-model-validation-of-dependent-properties-using-data-annotations – 2010-03-10 13:44:09
我很困惑。一个“高级”对象总是高级的,那么为什么IsSenior在这种情况下是错误的。当Person.IsSenior为false时,您不需要'Person.Senior'属性为null。或者为什么不按如下方式实现'IsSenior'属性:'bool IsSenior {get {return this.Senior!= null; }}。 – Steven 2010-03-10 13:46:37
Steven:“IsSenior”转换为视图中的复选框字段。当用户选中“IsSenior”复选框时,“Senior.Description”字段变为强制。 – 2010-03-10 14:47:14