如何使用数据注释对模型进行条件验证?
例如,假设我们有以下模型(人员和高级):
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)%>
我想成为基于“ IsSenior”属性(true-> required)的选择的“ Senior.Description”属性条件必填字段。如何在带有数据注释的ASP.NET MVC 2中实现条件验证?
Senior
对象始终是一个高级对象,那么在这种情况下,为什么IsSenior可以为false。当Person.IsSenior
false 时,您是否只需要'Person.Senior'属性为null即可。或为什么不IsSenior
按以下方式实现该属性:bool IsSenior { get { return this.Senior != null; } }
。