Отображение ошибок проверки модели домена для ViewModel при использовании FluentValidation

Я надеюсь, что люди здесь могут дать мне некоторые идеи о том, как правильно это сделать.

В настоящее время у меня есть ViewModel, который я использую для отображения моего экрана. Модель View фактически содержит сплющенные данные нескольких моделей доменов. Я украсил ViewModel атрибутами для базовой проверки, но настоящая проверка выполняется на уровне сервиса. Проблема возникает, когда на уровне сервиса есть ошибка проверки. Имя свойства (то есть - UserName) не соответствует записи в ModelState (то есть - RegistrationViewModel.UserName).

У кого-нибудь есть рекомендация, как справиться с этим?

Заранее спасибо!

Стивен

1

2 ответы

Возможно, это не ответ на ваш вопрос, но я так обычно подхожу к этому:

В модели домена я не использую никакой рамки проверки, и я не использую ее для предоставления дружественных пользователю сообщений об ошибках. Я всегда убеждаюсь, что модель находится в правильном состоянии. Я выдаю исключение, когда установлено недопустимое значение (в установщиках свойств). Я использую конструкторы объектов домена, чтобы всегда приводить их в допустимое состояние при создании экземпляра, используя значения по умолчанию и параметры конструктора. Реальный простой, но мощный, потому что вы всегда можете быть уверены, что ваша модель находится в правильном состоянии. Вы должны полностью проверить свои объекты домена. Этот подход также отлично работает с orm's.

Поэтому я использую только плавную проверку на viewmodel, чтобы дать удобные для пользователя сообщения.

1
добавлено
проблема с этим подходом заключается в том, что я буду придерживаться логики проверки бизнеса (сложные правила против простого поля, требуемого типа) для пользовательского интерфейса, чтобы я мог получить лучшее сообщение. Я не верю, что это хороший подход.
добавлено автор Steven, источник

это не самое лучшее решение, но в конце я полагаюсь на мою основную проверку на стороне клиента, чтобы показать основные проверки полей, все, что прошло, прошло и это подтверждено в службе, отображается в сводке проверки.

0
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)