我有2个属性电子邮件和确认电子邮件。如何为本地化属性Name提供字符串格式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 :(得分:4)
解决此问题的一种方法是在邮件中定义自定义参数:{0}
。因此,您的资源文件中的消息将如下所示。
'{PropertyName}' and '{0}' fields do not match.
并将"ConfirmEmail"
作为额外参数传递给WithLocalizedMessage
来电:
RuleFor(a => a.Email)
.Equal(a => a.ConfirmEmail)
.WithLocalizedMessage(() => MyResource.compareFields, "ConfirmEmail");