MVC2, используя один и тот же объект EF в различных представлениях - PullRequest
0 голосов
/ 07 ноября 2010

У меня есть эта проблема, из-за которой я ошибался в течение последних часов.

  1. Предположим, у меня есть эта форма регистрации, которую мне нужно заполнить, все свойства имеют атрибут RequiredAttribute,модель представляет собой объект EF с именем «Пользователь».

  2. у меня есть вторая форма редактирования сведений об учетной записи, и в данный момент определенное поле («Имя пользователя») больше не требуется, посколькуон у меня уже есть, пользователю не нужно снова его заполнять, и на самом деле он действительно появляется в форме редактирования.

Проблема: при публикации второй формы редактирования,очевидно, я застрял с атрибутом Username RequiredAttribute.

Я бы решил эту проблему, просто добавив атрибут «Bind» с опцией «Exclude», НО, это моя текущая модель:

public class AccountDetailsModel
{
    public User user { get; set; }
    public string NEWPASSWORD1 { get; set; } // new password
    public string NEWPASSWORD2 { get; set; } // new password comparison
}

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

Я застрял, почесывая головы в течение долгого времени ...

Как я могу преодолеть это?

Я просто хочу повторно использовать мою сущность EF (пользователя) в двух разных представлениях вместе с ее аннотациями данных.

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

Ответы [ 2 ]

1 голос
/ 07 ноября 2010

Я просто хочу повторно использовать мою сущность EF (пользователя) в двух разных представлениях вместе с ее аннотациями данных.

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

0 голосов
/ 07 ноября 2010

Поместите имя пользователя в скрытое поле ввода для страницы сведений.

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