gpt4 book ai didi

c# - ASP.NET MVC 条件验证

转载 作者:IT王子 更新时间:2023-10-29 03:33:38 24 4
gpt4 key购买 nike

如何使用数据标注对模型进行条件验证?

例如,假设我们有以下模型(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;
}
}

以及以下 View :

<%= 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”属性选择的“Senior.Description”属性条件必填字段(true -> required)。如何在 ASP.NET MVC 2 中使用数据注释实现条件验证?

最佳答案

有一种更好的方法可以在 MVC3 中添加条件验证规则;让您的模型继承 IValidatableObject 并实现 Validate 方法:

public class Person : IValidatableObject
{
public string Name { get; set; }
public bool IsSenior { get; set; }
public Senior Senior { get; set; }

public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (IsSenior && string.IsNullOrEmpty(Senior.Description))
yield return new ValidationResult("Description must be supplied.");
}
}

阅读更多信息 Introducing ASP.NET MVC 3 (Preview 1) .

关于c# - ASP.NET MVC 条件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2417113/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com