Для моей административной области я создал специальный маршрут. Я сделал это так, чтобы мои URL выглядели чище, и это избавило меня от проблемы с двумя контроллерами с одинаковым именем.
Пример: у меня есть UserController и другой AdminUserController для сайта администратора приложения.
Я не хочу, чтобы URL-адреса были такими:
http://www.example.com/user/...
http://www.example.com/admin/adminuser/...
Я хочу, чтобы админские URL выглядели так:
http://www.example.com/admin/user/...
Теперь, чтобы получить эту структуру URL, я попробовал это:
Я назвал свой контроллер администратора: AdminUserController
Тогда мой маршрут выглядит так:
routes.Add(new Route("admin/Admin{controller}/{action}/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { controller = "Admin", action = "index", Id=""});
});
Может ли это работать? (маршрут в данный момент не работает)
Я позаботился о том, чтобы этот маршрут был выше общего маршрута.
Обновление
Я хочу, чтобы все мои админские URL имели префикс папки / admin /, поэтому:
www.example.com/admin/user
www.example.com/admin/settings
www.example.com/admin/articles
и без прав администратора похожи на:
www.example.com/user
www.example.com/articles