создать форму мастера в MVC и как управлять папками вида и контроллера - PullRequest
0 голосов
/ 26 августа 2010

Мне нужно сделать мастер формы из 3 шагов. Каждый шаг может быть сохранен в базе данных отдельно. Шаги будут состоять в том, чтобы ввести информацию о компании, затем его публикации и, наконец, свои оговорки.

Должен ли я разместить всю логику в одном контроллере или в разных контроллерах? Моя первая мысль была бы об одном контроллере, так как это все об управлении компанией, но проблема в том, что у меня будет много кода в контроллере и в папке View, у меня будет около 20 веб-страниц.

Есть ли способ поместить подпапки в папку View \ Companies \, чтобы я мог иметь View \ Compangies \ Publications. Таким образом, я могу разделить веб-страницы для каждой темы.

Или как тебе это удается? Есть ли лучший способ правильно обращаться с волшебными формами?

Alex

1 Ответ

1 голос
/ 26 августа 2010

Зависит от модели.Если ваши публикации являются их собственной сущностью и в конечном итоге они сохраняются (в БД) в своей собственной таблице, это может быть правильным способом для них иметь свой собственный контроллер.То же самое с оговорками.Если вы храните оба из них как часть юридического лица Компании, то для них может быть лучше остаться в контроллере Компании.Но мне кажется, что они должны быть отдельными.

Что касается перенаправления между действиями контроллера, вы всегда можете использовать RedirectToAction () для перенаправления внутри того же контроллера.

Вы также можете использовать MVCПроект Futures и их расширения RedirectToAction (), с помощью которых вы также можете перенаправлять между различными контроллерами.

FWIW, я думаю, что если вы редактируете публикацию, которая имеет свои собственные свойства и т. Д., Она принадлежит их собственному объекту и, таким образомим нужно иметь свои собственные модели, контроллеры и последующие виды (в отдельной папке вида в корне видов).

ОБНОВЛЕНИЕ:

Что не так с маршрутом, который выглядит следующим образом:

Создание публикации для компании с {companyId}

/Publication/Create/{companyId}

или

Редактирование публикации с идентификатором {publishingId} и для компании с {companyId}

/Publication/Edit/{companyId}/{publicationId}

или если идентификаторы публикации уникальны независимо от компании

/Publication/Edit/{publicationId}
...