2010-01-28 2 views
3

Работает в течение нескольких месяцев в ASP.NET MVC. Я начинаю ходить по кругу - я постоянно натыкаюсь на Edit views, которые являются такими же, как Create views. Должен ли я продолжать просто отбрасывать виды редактирования и пытаться сделать один вид для создания и редактирования? Поскольку, по сути, они одинаковы, они выполняют ту же проверку, единственная разница в контроллере, где я обновляю вместо Create. И я могу сделать это с помощью простого if..else оператора - если объект найден в хранилище данных, выполните обновление, иначе создайте.ASP.NET Создать вид, такой же, как Edit?

Как вы думаете? Возможно ли, что я буду сталкиваться с проблемами в будущем, если я решит избавиться от Edit views ??

Разъяснение:

Главный вопрос: Какие изменения/требования бизнеса могли придумать, что потребует отдельного Create/Edit? На самом деле это то, что я хотел бы узнать. Потому что, если у нас есть объект Page, который имеет, например, эти свойства: Title, URL, Active и т. Д. И требует, чтобы эти поля вводились в Create, почему мы разрешаем им быть пустыми по какой-либо причине в Edit?

Thanx

ответ

3

Используйте UserControl (Form.ascx, например), и использовать его как в Create.aspx и Edit.aspx

<% using (var form = Html.BeginForm()) { 
    Html.RenderPartial("Form"); 
<% } %> 

Таким образом, сообщение происходит ан каждый из Создать Измените методы контроллера, вы также можете в обоих методах вызвать тот же метод проверки, и сделать соответствующую вставку или обновление.

+0

+1 Отличный ответ. Частичные взгляды делают жизнь намного проще. Следует отметить, что частичный текст должен быть строго типизирован, чтобы вы могли передать объект модели с помощью вида редактирования. –

+2

Еще одна вещь для OP. ознакомьтесь с учебником NerdDinner. На странице 111 ScottGu точно показывает, как делать то, что Алекс говорит с частичными представлениями. Найти учебник здесь: http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf –

+0

Это на самом деле то, что я делал до сих пор. С Partials, но у меня был View User control splitted - я имею в виду Create.ascx и Edit.ascx, а затем Create.aspx и Edit.aspx, и это действительно раздражает все это, когда все поля объектов одинаковы. Это просто скопировать вставки и переименование файлов, что, я думаю, неверно. – mare

0

В пользовательской модели представления вы можете передать параметр, например: режим редактирования в режиме вы используете (Edit или Создать) и принять differemnt anme действия в зависимости от этого режима

1

Если он последовательно обходится вам в разработке время, то я бы присоединился к ним ... поговорим с ними, когда они приходят к нему.

Кроме того, вам может потребоваться посмотреть, возможно, вы можете использовать некоторое генерирование кода, чтобы облегчить некоторые из ваших проблем, если вы хотите, чтобы они были разделены. (Я предполагаю, что проблемы возникают, когда вам нужно добавить или удалить новое поле из обоих?)

+0

Точно. Когда я добавляю или удаляю поле, я должен внести изменения в два файла. – mare