Как мне узнать, что является частью маршрута, является контроллером, а что является просто подпапкой? - PullRequest
1 голос
/ 05 ноября 2011

Когда я смотрю на страницу MVC и смотрю на действие формы, я вижу, что для него установлено:

/ admin / WikiAdmin / edit /

Итак, япровел свое время в поисках контроллера под названием admin .Я смотрел в глобальных маршрутах и ​​там ничего не было.

В конце концов я обнаружил, что этот URL действительно отображается на контроллере WikiAdmin , что сбивает с толку.Означает ли это, что вы можете иметь контроллеры в подпапках?Откуда приложение не направляет запрос на контроллер администратора и фактически отправляет его на контроллер WikiAdmin ?

Ответы [ 2 ]

1 голос
/ 05 ноября 2011

Да, вы можете иметь контроллеры в подпапках. При маршрутизации может быть много возможных URL. Например, если у вас есть зарегистрированный маршрут, как показано ниже:

routes.MapRoute(
    "admin1",
    "admin/{controller}/{action}/",
    new { controller = "WikiAdmin", action = "Index"}
);

URL может быть / admin / WikiAdmin / Index / или / admin / WikiAdmin / Edit / или что-то еще, соответствующее маршруту. (Предположим, что в контроллере WikiAdmin есть действие Edit)

Еще пример, если у вас есть маршрут, зарегистрированный как показано ниже:

routes.MapRoute(
    "admin2",
    "account/{action}/", //no controller specified in url
    new { controller = "WikiAdmin", action = "Index"}
);

Тогда URL может быть / account / Index / или / account / Edit / или даже / account / . (Поскольку контроллер по умолчанию - WikiAdmin, а действие по умолчанию - индекс)

1 голос
/ 05 ноября 2011

Часть URL admin называется area. Вы можете прочитать больше об областях в этой статье . И видео здесь . В основном области позволяют группировать несколько контроллеров, имеющих общие функции на сайте.

...