Blazor 如何访问EditForm中单个字段的验证?
我想根据Blazor 如何访问EditForm中单个字段的验证?,blazor,blazor-client-side,blazor-webassembly,asp.net-blazor,Blazor,Blazor Client Side,Blazor Webassembly,Asp.net Blazor,我想根据中的验证结果操作css 我的简化表格如下所示 <EditForm Model="Registration" OnValidSubmit="Submit"> <label for="input-username">Username</label> <InputText id="input-username" type=&q
中的验证结果操作css
我的简化表格如下所示
<EditForm Model="Registration" OnValidSubmit="Submit">
<label for="input-username">Username</label>
<InputText id="input-username"
type="text"
class="???"
@bind-Value="Registration.Username" />
<p>
<ValidationMessage For="@(() => Registration.Username)" />
</p>
</EditForm>
用户名
我的表单比这个表单有更多的字段,因此我只想过滤注册的验证。Username要只编辑
#input Username的css类,您可以订阅EditContext对象的OnFieldChanged事件,找出哪个字段已更改,并相应地执行操作
<EditForm EditContext="EditContext" OnValidSubmit="Submit">
<DataAnnotationsValidator />
<label for="input-username">Username</label>
<InputText id="input-username" type="text" class="MyUsername"
@bind-Value="Registration.Username" />
<p>
<ValidationMessage For="@(() => Registration.Username)" />
</p>
<button type="submit">Submit</button>
</EditForm>
@code
{
private Registration Model = new Registration();
private EditContext EditContext;
private string MyUsername = "InitialCssClass";
protected override void OnInitialized()
{
EditContext = new EditContext(Model);
EditContext.OnFieldChanged += EditContext_OnFieldChanged;
}
private void EditContext_OnFieldChanged(object sender,
FieldChangedEventArgs e)
{
if (e.FieldIdentifier.FieldName == nameof(Model.Username))
{
MyUsername = "Set here a new class name, etc.";
}
}
}
用户名
提交
@代码
{
私人注册模型=新注册();
私有编辑上下文编辑上下文;
私有字符串MyUsername=“InitialCssClass”;
受保护的覆盖无效OnInitialized()
{
EditContext=新的EditContext(模型);
EditContext.OnFieldChanged+=EditContext\u OnFieldChanged;
}
私有void EditContext\u OnFieldChanged(对象发送方,
FieldChangedEventArgs(e)
{
if(e.FieldIdentifier.FieldName==nameof(Model.Username))
{
MyUsername=“在此处设置新的类名等”;
}
}
}