Мы используем MVC3 с проверкой unobstructuve , все в порядке;наши пользовательские проверки работают как на сервере, так и на клиенте.
Мы также используем встроенный asp.net Ролевый провайдер .У нас есть особые виды, которые мы используем для разных ролей.Некоторые поля (свойства ViewModel) являются обязательными в зависимости от роли вошедшего в систему пользователя.
У меня вопрос: как создать ValidationAttribute на основе роли?Мы хотим сделать свойство Обязательным, когда пользователь является обычным пользователем;но мы не хотим делать это поле обязательным, если пользователь является администратором.Но мы хотим использовать то же представление.
Я знаю, что мы можем создать пользовательский ValidationAttribute (создание класса, производного от ValidationAttribute ) Полагаю, это будет работатьхорошо для проверки на стороне сервера.Но мы действительно хотим проверить эту клиентскую сторону.
Я считаю, что мы реализуем IClientValidatable в нашем выше ValidationAttribute и пишем некоторый jQuery, чтобы сделать Ajax-вызов обратно на сервер для проверки текущего вошедшего в систему пользователя ироли.Но это заставит нас делать вызов Ajax каждый раз, когда изменяется конкретное свойство, и зарегистрированный пользователь не изменится.
Как правильно это сделать?Или мы должны создать разные ViewModels для разных вошедших в систему пользователей?
Пожалуйста, дайте мне знать, когда приведенное выше объяснение не имеет смысла, я могу добавить пример кода при необходимости.
Любая помощь приветствуется.
Спасибо,
Пим