у меня ViewModel используется для изменения пароля, и он использует Compare
DataAnnotation так:Сравните атрибут не использует атрибут отображения сравниваемых собственности
[Display(Name = "New Password")]
public string New { get; set; }
[Compare("New")]
[Display(Name = "Confirm Password")]
public string ConfirmPassword { get; set; }
К сожалению, атрибут Compare
не использует атрибут Display
сравниваемое свойство.
Сообщение об ошибке отображается в виде
'Confirm Password' and 'New' do not match.
, который вы можете увидеть, использует атрибут сравнения свойства, Display
, но не по сравнению имущества.
Я также хочу указать, что я не хочу использовать параметр ErrorMessage
, потому что тогда я бы стал жестко кодировать имя свойства, а не просто приобретать его из существующего атрибута. Я хотел бы сохранить это решение как можно лучше.
Как я могу присвоить атрибуту Compare
атрибут Display
сравниваемого свойства?
К счастью, это действительно работает. К сожалению, это не будет служить моей цели, потому что создание нового атрибута удаляет проверку на стороне клиента jQuery и только проверяет на обратную передачу. Я буду отмечать это как ответ, однако я не буду использовать его в своем проекте. В любом случае спасибо! – Kehlan
Извините, что я обновил ответ с дополнительной работой, которую вам нужно будет сделать для этого: –
Класс CompareAttributeAdapter кажется внутренним для сборки System.Web.Mvc, как вы могли его использовать? – Konamiman