请问有没有办法把下面的代码打包成可复用的组件。 该代码位于提交表单时 HandleValidSubmit 的事件处理程序中。
_accountValidator.ClearErrors();
if (!string.IsNullOrEmpty(SelectedAgreement.Account))
{
if (SelectedAgreement.ProvisionAccountTypeId == (int) ProvisionAccountTypeEnum.CD_IDENT &&
SelectedAgreement.Account.Length != 5)
{
var errors = new Dictionary<string, List<string>>
{
{
nameof(SelectedAgreement.Account),
new List<string> {"CD Ident requires a 5 digit account number"}
}
};
_accountValidator.DisplayErrors(errors);
return false;
}
if (SelectedAgreement.ProvisionAccountTypeId == (int) ProvisionAccountTypeEnum.VP_Account &&
SelectedAgreement.Account.Length > 15)
{
var errors = new Dictionary<string, List<string>>
{
{
nameof(SelectedAgreement.Account),
new List<string> {"VP Account number has a max length of 15"}
}
};
_accountValidator.DisplayErrors(errors);
return false;
}
}
我知道 fluent 验证,但我有很多使用数据属性的代码。
答案 0 :(得分:1)
我认为您无法传递 CustomValidator (_accountValidator),因此我认为您对 ClearErrors 和 DisplayErrors 的调用必须保留在您的 CustomValidator 所在的组件中。
这并不意味着您不能将编辑模型“SelectedAgreement”发送到可重用的代码段,以将 Dictionary 一些附加信息: https://docs.microsoft.com/en-us/aspnet/core/blazor/forms-validation?view=aspnetcore-5.0