提问人:ExecChef 提问时间:11/15/2023 更新时间:11/15/2023 访问量:12
Blazor 自定义比较属性验证 - 辅助验证失败
Blazor Custom Compare Attribute Validation - Secondary Validation fails
问:
我有一个带有 dat 入口页的 Blazor 应用程序。
我正在尝试制定一个自定义验证规则,使其成为强制性的:如果选中 CHECKBOX(type_other),则 textbox(OtherIncidentType) 变为强制性。
第一部分是使用自定义 Compare Below 正常工作:
[HTML全文]
<DataAnnotationsValidator />
<ValidationSummary />
<RadzenLabel Text="Other. "/>
<RadzenCheckBox @[email protected]_other />
<RadzenLabel Text="If Other, please describe: " />
<RadzenTextbox @[email protected] />
CumstomCompareAttributes 类
public class CustomCompareAttributesOther : CompareAttribute
public CustomCompareAttributesOther(string otherProperty) : base(otherProperty)
{}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
WIR40 entity = (WIR40)validationContext.ObjectInstance;
if (entity.type_other == true && string.IsNullOrWhiteSpace(entity.OtherIncidentType))
{ return new ValidationResult("When selecting Other as an Incident, a Description is also needed.");}
return ValidationResult.Success;
}
}
型
[CustomCompareAttributesOther(name(OtherIncidentType))]
public bool? type_other {get; set;}
public string? OtherIncidentType {get; set;}
现在,它正在工作 50%
如果用户选中该复选框,则会显示验证消息(提醒他们输入说明)。
问题是,在用户在正确的文本框中输入描述后,错误仍然显示。
我不确定如何解决这个问题,并在更正后使验证消失。看到警告仍然存在对用户来说非常令人困惑。
我错过了什么?我尝试在模型中包含验证规则,除了“type_other”之外,还位于“OtherIncidentType”上。 .尽管这稍微改变了事情 - 它没有产生我预期的结果。
答: 暂无答案
评论