Как применить макеты для разных URL с одинаковыми действиями - PullRequest
0 голосов
/ 06 марта 2012

У меня три контроллера с тремя действиями:

  • Список
  • View
  • Информация

Единственная разница между контроллерами заключается в выбранном макете и URL.

Сначала я использовал RenderPartial - но все еще много дублирования кода (в основном в действиях).

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

Ответы [ 2 ]

1 голос
/ 06 марта 2012

почему контроллер определяет ваш макет?это плохая практика.помните, что в MVC слой VIEW предназначен для определения макета.

Каждый файл вида может переопределять общий файл макета по умолчанию с помощью

@{
   Layout = "path/to/your/layout.cshtml";  
}

, и вы можете динамически предоставлять это значение, например, с помощью ViewBag.

0 голосов
/ 06 марта 2012

Вы можете указать View File, который должен использоваться Контроллером.

return View("~/Views/Posts/Index.cshtml", db.Posts.ToList())

Таким образом, вы можете использовать один и тот же шаблон для разных методов контроллера.

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