Исключить свойство из ненавязчивого клиента Проверка с помощью MVC 3 - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть класс User, у которого есть свойство Email, например:

public class User : Entity
{       
...
    [Display(Name = "Email"), Required(ErrorMessage = "Required."), Remote("EmailExists", "User", ErrorMessage = "Email already in Use.")]
    public virtual string Email { get; set; }
...
}

My View Create отлично работает со всей проверкой ... Но, на мой взгляд, Изменить, мой текстовый ящик электронной почты Только чтение , поэтому пользователь не может изменить адрес электронной почты ...

Проблема в моей удаленной проверке EmailExists продолжает срабатывать ...

Есть ли способ исключить проверку клиента электронной почты только в этом случае? Или, может быть, другое решение?

Спасибо

Ответы [ 3 ]

1 голос
/ 12 апреля 2011

Я думаю, что более простой способ - отключить поле в клиенте вместо использования только для чтения.Плагин validate не учитывает отключенные поля.

1 голос
/ 12 апреля 2011

В этом конкретном случае лучшим решением будет визуализация электронной почты в виде текстового содержимого (span, p и т. Д.) - проверки не будут выполняться.Это лучше всего сделать с помощью шаблонов редактора.Но если вы не хотите, вы можете использовать JavaScript для удаления правил на стороне клиента.Взгляните на Плагины / Проверка / Правила - вы удалили бы правило, когда текстовое поле доступно только для чтения.Но для меня первый способ предпочтительнее

0 голосов
/ 12 апреля 2011

Вы можете использовать разные ViewModel для редактирования и создания представлений и применять атрибут Remote только для просмотра модели, связанной с представлением создания, или вызывать некоторую другую логику удаленной проверки для модели представления, связанной с представлением редактирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...