我有多个选项卡,里面有一个表单.
<MudTabs Elevation="4" Rounded="true" Centered="true" Color="@Color.Primary">
<MudTabPanel Text="@formA.model.Name" Style="@GetRed(formA.form?.Errors.Any())">
<CustomForm @ref="formA" model="formA.model" />
</MudTabPanel>
<MudTabPanel Text="@formB.model.Name" Style="@GetRed(formB.form.Errors.Any())">
<CustomForm @ref="formB" model="formB.model" />
</MudTabPanel>
<MudTabPanel Text="@formC.model.Name" Style="@GetRed(formC.form.Errors.Any())">
<CustomForm @ref="formC" model="formC.model" />
</MudTabPanel>
<MudButton OnClick="ValidateForms" >ValidateForms</MudButton>
</MudTabs>
public async Task ValidateForms(){
bool isValid = true;
isValid &= await formA.Validate();
isValid &= await formB.Validate();
isValid &= await formC.Validate();
if(isValid){
// Continue
}
}
public async Task<bool> Validate()
{
await form.Validate();
return form.IsValid;
}
我希望一次验证所有表单,并在发生任何验证错误时在红色边框中显示相应的结束选项卡.如果切换制表符,则应将这些字段标记为错误. 但似乎如果表单(或其字段)没有呈现,验证就会自动成功.它对激活的选项卡起作用.
代码段:https://try.mudblazor.com/snippet/GEcRlmbbTAGxcXkw
作为一种变通方法,我可以将Properties添加到FormModel中,即NameHasErrors,并手动处理所有内容,这是可行的.但我想让代码更简单.
有没有简单明了的方法?或者我必须使用变通方法?