Маршруты тщеславия MVC? - PullRequest
       10

Маршруты тщеславия MVC?

2 голосов
/ 01 сентября 2009

Мне нужен маршрут, который будет выглядеть примерно так: www.abc.com/companyName/Controller/Action/Id Тем не менее, все названия компаний должны быть сопоставлены с одними и теми же «базовыми» контроллерами, что касается названия. Мне нужно только имя компании для аутентификации.

Кроме того, если не указано название компании, мне нужно полностью сопоставить другой набор контроллеров.

Как мне это сделать? Я также был бы признателен за хороший ресурс маршрутизации, поэтому мне не нужно задавать подобные вопросы.

Ответы [ 3 ]

4 голосов
/ 01 сентября 2009
routes.MapRoute(
    "CompanyRoute",                                        
    "{companyName}/{controller}/{action}/{id}",           
    new { controller = "MyBaseCompanyController", action = "Index", id = "" }  
);

routes.MapRoute(
    "NoCompanyRoute",
    "{controller}/{action}/{id}",
    new {controller = "DifferentDefaultController", action = "Index", id = "" });

Маршрутизация - довольно сложная тема, но она хорошо освещена в Professional ASP.Net MVC 1.0 . Для онлайн-ресурсов я бы предложил начиная с , а затем возвращаясь к переполнению стека;)

1 голос
/ 01 сентября 2009

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

Отладчик маршрута

0 голосов
/ 01 сентября 2009

Перейдите к Global.asax.cs и добавьте следующий маршрут в метод RegisterRoutes () перед маршрутом «По умолчанию»:

routes.MapRoute(
    "Vanity",                                              // Route name
    "{company}/{controller}/{action}/{id}",                           // URL with parameters
    new { company = "", controller = "Home", action = "Index", id = "" }  // Parameter defaults
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...