Validation Fluent验证比较字段字符串格式参数

Validation Fluent验证比较字段字符串格式参数,validation,asp.net-mvc-4,server-side,fluent,fluentvalidation,Validation,Asp.net Mvc 4,Server Side,Fluent,Fluentvalidation,我有两个属性电子邮件和确认电子邮件。如何为两个本地化属性名提供字符串格式参数 例如: public class Account { public string Email {get;set;} public string ConfirmEmail {get;set;} } Public AccountValidator : AbstractValidator<Account> { public AccountValidator() { RuleFo

我有两个属性电子邮件和确认电子邮件。如何为两个本地化属性名提供字符串格式参数 例如:

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);
    }  
}
公共类帐户
{
公共字符串电子邮件{get;set;}
公共字符串确认邮件{get;set;}
}
公共AccountValidator:AbstractValidator
{
公共帐户验证程序()
{
规则(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");