我有2个属性电子邮件和确认电子邮件。如何为两个本地化属性名称提供字符串格式arg
例如:-
public class Account
{
public string Email {get;set;}
public string ConfirmEmail {get;set;}
}
Public AccountValidator : AbstractValidator<Account>
{
public AccountValidator()
{
RuleFor(a=> a.Email)
.Equal(a=>a.ConfirmEmail)
.WithLocalizedMessage(() => MyResource.compareFields);
}
}
我的资源文件具有以下消息:
'{PropertyName}'和'{??? }”字段不匹配。
我应该在???中使用什么?这样说:-
“电子邮件”和“确认电子邮件”字段不匹配。
最佳答案
解决此问题的一种方法是在消息中定义自定义参数:{0}
。因此,您的消息在资源文件中看起来像这样。
'{PropertyName}' and '{0}' fields do not match.
并将
"ConfirmEmail"
作为附加参数传递给WithLocalizedMessage
调用:RuleFor(a => a.Email)
.Equal(a => a.ConfirmEmail)
.WithLocalizedMessage(() => MyResource.compareFields, "ConfirmEmail");