2016-11-07 3 views
1

В настоящее время URL-адрес в адресной строке отображается какКак изменить URL в качестве параметра будет выглядеть имя контроллера в MVC

example.com/?City=Canada&para1=&para2=&.... 

это вообще возможно сделать URL быть:

example.com/Canada/?para1=&para2=&.... 

Используется следующий маршрут:

routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 

Но возможно ли это сделать без создания «Canada» Controller или Acti по методу? Он также должен делать то же, что и первый url.

+0

Покажите соответствующий код контроллера вместе с текущими маршрутами в вашем 'RoutesConfig' – haim770

+0

@ haim770, вопрос обновлен – AmanVirdi

ответ

1

Просто введите перед ваш текущий маршрут по умолчанию.

routes.MapRoute(
    name: "CityDefault", 
    url: "{city}/{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

По существу, это просто говорит о том, что первый путь в маршруте представляет собой «городской» параметр. Таким образом, на маршруте, таком как /Canada/, city будет «Канада», а controller/action будут по умолчанию «Главная» и «Индекс» (поскольку они не были указаны на маршруте).

Примечание: Вы знаете, что Канада - это не город?

+0

Конечно, он имел в виду Little Canada, MN. http://www.ci.little-canada.mn.us/ –

+0

Вышеуказанное работает. Но я пытаюсь применить это только к одному методу Action в контроллере. Можем ли мы это сделать в маршрутизации атрибутов ...? – AmanVirdi

Смежные вопросы