Я был в такой же ситуации раньше.Я искал в то время, но обнаружил, что не было никакого решения, которое дало бы вам два набора правил проверки для одного и того же класса.
То, как я справился с этим, заключалось в использовании моделей представлений.У вас есть «базовые» классы модели, и вы хотите, чтобы разные пользовательские интерфейсы (в данном случае веб-интерфейс и пользовательский интерфейс администратора) имели разные правила проверки.В этом случае вам не понадобятся классы собеседников для ваших классов модели, поскольку вы не хотите применять правила проверки к самому классу модели, вместо этого вам нужно будет наследовать от класса модели, чтобы создать два класса модели представления, один для веба.а другой - для интерфейса администратора и применяет правила проверки с помощью DataAnnotations по-разному для этих классов в соответствии с вашими потребностями.Вы также можете «улучшить» свои классы модели представления с помощью любых дополнительных специфичных для пользовательского интерфейса атрибутов.
Я знаю, что это решение не идеально, поскольку у вас будут правила проверки в двух разных местах, и обычно это не рекомендуется, ноработает, и это не так уж плохо практически, особенно если приложение не очень большое.Единственное другое решение - это проверить вручную, откуда пользователь использует место (веб или администратор), а затем добавить ошибки состояния модели в соответствии с этим.Но я бы не советовал делать это таким образом.
Я хотел бы услышать, есть ли у кого-нибудь лучшее решение для этого.