Должен ли я использовать тот же контроллер и представление для редактирования и создания моделей в ASP.NET MVC? - PullRequest
0 голосов
/ 30 декабря 2008

Должен ли я использовать один и тот же контроллер и представление для редактирования и создания моделей в ASP.NET MVC, или я должен создать представление и действие контроллера для создания, а представление и действие контроллера для редактирования?

Вид редактирования, скорее всего, будет другим - не всегда имеет смысл, если пользовательский интерфейс для редактирования объекта совпадает с видом для создания,

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

Мысли

Ответы [ 2 ]

2 голосов
/ 30 декабря 2008

Рекомендации, которые я видел, предполагают, что представления являются отдельными с общими элементами, содержащимися в элементе управления, чтобы оставаться СУХИМЫМИ.

Кажется логичным использовать тот же подход с контроллером - повторно использовать общие части, где это необходимо.

Это представление здесь отражено Как правильно повторно использовать редактирование / новые представления в Asp.NET MVC , поскольку вопрос очень похож.

0 голосов
/ 30 декабря 2008

AFAIK это рекомендуется: (Человек, используемый в примере)

используйте один контроллер для обработки обоих случаев

В этом контроллере есть четыре действия:

  • New ()
  • Редактировать (int personId)
  • Создать (Персона р)
  • Обновление (Персона р)

Два представления: Person / New.aspx и person / Edit.aspx

каждое из двух представлений содержит форму, в которой публикуются сообщения о соответствующих действиях:

  • Новый -> Создать
  • Редактировать -> Обновить

Теперь у вас есть два варианта: либо реализовать содержимое формы дважды (в каждом из представлений), либо реализовать фактическую форму в PersonForm.ascx и использовать частичный рендеринг для визуализации содержимого формы.

Какой путь вы выберете в последнем случае, зависит от того, должны ли формы быть более или менее одинаковыми (перейти на общий контроль) или они должны быть разными (реализовать два разных)

Если это просто вопрос другого макета в новых / редактируемых формах, вы можете просто обратиться к различным файлам CSS и позволить CSS обработать различия

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