ASP.NET Создать представление так же, как Изменить? - PullRequest
3 голосов
/ 28 января 2010

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

Что ты думаешь? Вполне вероятно, что я когда-нибудь столкнусь с проблемами в будущем, если решу избавиться от представлений «Правка» ??

Пояснение:

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

1009 * спасибо *

Ответы [ 3 ]

3 голосов
/ 28 января 2010

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

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

Таким образом, публикация происходит в каждом из методов Create Edit контроллера, вы также можете в обоих методах вызывать один и тот же метод проверки, а затем выполнять соответствующую вставку или обновление.

1 голос
/ 28 января 2010

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

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

0 голосов
/ 28 января 2010

В вашей пользовательской модели представления вы можете передать параметр, например: EditMode с режимом, который вы используете в данный момент (Редактировать или Создать), и выполнить другое действие в функции этого режима

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