Проверка свободно сравнивать строковое поле формат аргументов


У меня есть 2 свойства Email и Confirm Email. Как представить строку в формате 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} 'и' { ??? } 'поля не совпадают.

Что я должен использовать в ??? так что он говорит : -

'поля" Email " и "ConfirmEmail" не совпадают.

1 4

1 ответ:

Один из способов решить эту проблему, чтобы определить пользовательский параметр в вашем сообщении: {0}. Таким образом, ваше сообщение будет выглядеть так в вашем файле ресурсов.

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

И передать в "ConfirmEmail" в качестве дополнительного аргумента вызову WithLocalizedMessage:

RuleFor(a => a.Email)
    .Equal(a => a.ConfirmEmail)
    .WithLocalizedMessage(() => MyResource.compareFields, "ConfirmEmail");