Blazor Razor验证消息don';无法从组件库中显示

Blazor Razor验证消息don';无法从组件库中显示,razor,blazor,Razor,Blazor,我已经创建了blazor组件库,以便能够从应用程序调用组件,但消息验证没有显示。目前,验证是在InputText中完成的(它验证输入的格式或长度),但没有显示组件的消息或样式 组件库的代码: 自定义输入文本 @代码{ [参数] 公共字符串占位符文本{get;set;} [参数] 公共对象模型{get;set;} [参数] 公共字符串值{get;set;} [参数] public EventCallback ValueChanged{get;set;} 私有任务OnValueChanged(C

我已经创建了blazor组件库,以便能够从应用程序调用组件,但消息验证没有显示。目前,验证是在InputText中完成的(它验证输入的格式或长度),但没有显示组件的消息或样式

组件库的代码:

自定义输入文本


@代码{
[参数]
公共字符串占位符文本{get;set;}
[参数]
公共对象模型{get;set;}
[参数]
公共字符串值{get;set;}
[参数]
public EventCallback ValueChanged{get;set;}
私有任务OnValueChanged(ChangeEventArgs e)
{
Value=e.Value.ToString();
返回值已更改。InvokeAsync(值);
}

}
您需要将验证摘要的
作为表达式传递

CustomInputText
需要如下所示:

<input value="@Value" @oninput="OnValueChanged" placeholder=@placeholderText class="form-control i-component o-my-4" />
<ValidationMessage For="@For" />

@code {
    [Parameter]
    public string placeholderText { get; set; }

    [Parameter] public Expression<Func<string>>? For { get; set; }

    [Parameter]
    public string Value { get; set; }

    [Parameter]
    public EventCallback<string> ValueChanged { get; set; }

    private Task OnValueChanged(ChangeEventArgs e)
    {
        Value = e.Value.ToString();

        return ValueChanged.InvokeAsync(Value);
    }
}

@代码{
[参数]
公共字符串占位符文本{get;set;}
[参数]公共表达式{get;set;}
[参数]
公共字符串值{get;set;}
[参数]
public EventCallback ValueChanged{get;set;}
私有任务OnValueChanged(ChangeEventArgs e)
{
Value=e.Value.ToString();
返回值已更改。InvokeAsync(值);
}
}
以及您的标记:

<CustomInputText @bind-Value="filterPayRoll.IDF" For="() => filterPayRoll.IDF" />

您需要将验证摘要的
作为表达式传递

CustomInputText
需要如下所示:

<input value="@Value" @oninput="OnValueChanged" placeholder=@placeholderText class="form-control i-component o-my-4" />
<ValidationMessage For="@For" />

@code {
    [Parameter]
    public string placeholderText { get; set; }

    [Parameter] public Expression<Func<string>>? For { get; set; }

    [Parameter]
    public string Value { get; set; }

    [Parameter]
    public EventCallback<string> ValueChanged { get; set; }

    private Task OnValueChanged(ChangeEventArgs e)
    {
        Value = e.Value.ToString();

        return ValueChanged.InvokeAsync(Value);
    }
}

@代码{
[参数]
公共字符串占位符文本{get;set;}
[参数]公共表达式{get;set;}
[参数]
公共字符串值{get;set;}
[参数]
public EventCallback ValueChanged{get;set;}
私有任务OnValueChanged(ChangeEventArgs e)
{
Value=e.Value.ToString();
返回值已更改。InvokeAsync(值);
}
}
以及您的标记:

<CustomInputText @bind-Value="filterPayRoll.IDF" For="() => filterPayRoll.IDF" />


您知道如何将消息错误(.validation message)的类添加到输入文本的文本中,以便两者都以红色显示吗?我不直接使用Blazor输入控件,或者我继承的用于处理CSS更改的控件版本。如果由
FieldIdentifier
标识的字段未通过验证,则可以通过调用EditContext中的
valid
invalid
来获取CSS字符串。您可以像这样创建一个
FieldIdentifier
fieldidentifi=newfieldidentifier(model:model,fieldName:“fieldName”)您知道如何将消息错误(.validation message)的类添加到输入文本的文本中,以便两者都以红色显示吗?不是直接的,我总是使用Blazor输入控件,或者我继承的用于处理CSS更改的控件版本。如果由
FieldIdentifier
标识的字段未通过验证,则可以通过调用EditContext中的
valid
invalid
来获取CSS字符串。您可以像这样创建一个
FieldIdentifier
fieldidentifi=newfieldidentifier(model:model,fieldName:“fieldName”)