Отказ от контроллера с правилами маршрутизации в ASP.NET MVC - PullRequest
2 голосов
/ 23 марта 2010

Я создал сайт с ASP.NET MVC. У меня есть несколько статических страниц, которые я в настоящее время обслуживаю через один контроллер под названием Home. Это создает некоторые довольно уродливые URL.

example.com/Home/About 
example.com/Home/ContactUs 
example.com/Home/Features

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

Есть ли способ написать правило маршрутизации, которое удалит контроллер из URL? Я бы хотел, чтобы это выглядело так:

example.com/About
example.com/ContactUs
example.com/Features

Если нет, как эта ситуация обычно обрабатывается? Я полагаю, что я не первый, кто сталкивается с этим.

Ответы [ 2 ]

2 голосов
/ 28 сентября 2010

Вот что я сделал ранее, используя ограничение, чтобы убедиться, что ярлыки не конфликтуют с другими правилами маршрутизации:

routes.MapRoute(
    "HomeShortcuts",
    "{action}",
    new { controller = "Home", action = "Index" },
    new { action = "Index|About|ContactUs|Features" }
);
1 голос
/ 23 марта 2010

Добавить значения по умолчанию для имен контроллеров в новом операторе. Вам не нужно иметь {controller} в URL.

...