Проверка свободно сравнивать строковое поле формат аргументов
У меня есть 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 ответ:
Один из способов решить эту проблему, чтобы определить пользовательский параметр в вашем сообщении:
{0}
. Таким образом, ваше сообщение будет выглядеть так в вашем файле ресурсов.'{PropertyName}' and '{0}' fields do not match.
И передать в
"ConfirmEmail"
в качестве дополнительного аргумента вызовуWithLocalizedMessage
:RuleFor(a => a.Email) .Equal(a => a.ConfirmEmail) .WithLocalizedMessage(() => MyResource.compareFields, "ConfirmEmail");