4

我有 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}' 和 '{ ??? }' 字段不匹配。

我应该用什么???所以它说: -

“电子邮件”和“确认电子邮件”字段不匹配。

4

1 回答 1

4

解决此问题的一种方法是在您的消息中定义自定义参数:{0}. 所以你的消息在你的资源文件中看起来像这样。

'{PropertyName}' and '{0}' fields do not match.

并将"ConfirmEmail"作为额外参数传递给WithLocalizedMessage调用:

RuleFor(a => a.Email)
    .Equal(a => a.ConfirmEmail)
    .WithLocalizedMessage(() => MyResource.compareFields, "ConfirmEmail");
于 2013-06-22T16:54:18.087 回答