如何使用数据注释对模型进行条件验证?
例如,假设我们有以下模型(Person和Senior):
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;
}
}
Run Code Online (Sandbox Code Playgroud)
以下观点:
<%= 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)%> …Run Code Online (Sandbox Code Playgroud) 在我的ASP.NET MVC应用程序的模型中,我想仅在选中特定复选框时才根据需要验证文本框.
就像是
public bool retired {get, set};
[RequiredIf("retired",true)]
public string retirementAge {get, set};
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
谢谢.
我正在开发一个需要条件验证的MVC页面.
当用户从下拉列表中选择国家/地区时,如果他们选择两个特定国家/地区中的一个,则会显示一个包含两个所需文本框的框.我希望验证在这种情况下激活,如果他们选择任何其他国家/地区,则隐藏该框并且将停用验证.
目前在我没有构建的站点上,有一个单独的验证类(继承自ValidationSet),它处理该控制器的所有验证,并且它们使用ValidatePresence,ValidateDecimal和ValidateExpression等命令进行验证,所以我想坚持这种格式以保持一致性.例如
new ValidatePresence("countryId") {ErrorMessageFormat = "Please supply a country for delivery to"}
Run Code Online (Sandbox Code Playgroud)
有人有任何想法吗?谢谢