3

У меня 2 свойства Эл. Почта и подтверждение по электронной почте. Как обеспечить строку формата ARG как для локализованного собственности Имя Для примера: -Fluent Validation Сравнить Field String format args

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» не совпадают.

ответ

4

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

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

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

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

Спасибо, что работали. – user2232861