我不明白为什么我的自定义验证 (Blazor) 显示两次

I don't understand why my custom validations (Blazor) are displaying twice

提问人:ExecChef 提问时间:11/14/2023 最后编辑:GSergExecChef 更新时间:11/14/2023 访问量:55

问:

我创建了几个自定义验证,如果选中了关联的复选框,则要求辅助字段成为必填字段。一切都很好。

最近,客户询问我们是否可以“隐藏”辅助字段,并且仅在选中相关复选框时才显示它。自从我添加了该代码以来,我的所有验证错误都显示两次。

例:

<RadzenLabel Text="Other:  " />&nbsp;&nbsp; <RadzenCheckBox @[email protected]_other  Name="CheckBox15" @onclick="@HideOtherP"  />

<RadzenLabel Text="If Other, Please Describe:  " hidden="@HideOther" />&nbsp;&nbsp;<RadzenTextBox hidden="@HideOther" @[email protected] onkeydown="return (event.keyCode!=13);" MaxLength="100" class="w-100" />

法典

private bool HideOther { get; set; } = true;

public void HideOtherP()
{
    HideOther = !HideOther;
}

[CustomCompareAttributesOther(nameof(OtherIncidentType))]
public bool? type_other { get; set; }

自定义属性

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        int count2 = 0;
        WIR40 entity = (WIR40)validationContext.ObjectInstance;
        if (entity.type_other == true && string.IsNullOrWhiteSpace(entity.OtherIncidentType))
        {
            {
                return new ValidationResult("When selecting Other as an Incident Action: A Description is also required.");
            }
        }
        return ValidationResult.Success;
    }
}

我在验证结果中放置了一个 STOP,然后逐行执行。它击中了线:

return new ValidationResult("When selecting Other . . . . . .");

然后它跳到,然后又跳回第一行。导致验证错误发布两次。return ValidationResult.Success;

我不明白为什么会发生这种情况,以及为什么当我没有隐藏/取消隐藏组件时没有发生这种情况。

任何能帮助我更好地理解为什么会发生这种情况以及如何解决它的见解,将不胜感激。

C# ASP.Net-Core 验证 Blazor

评论


答: 暂无答案