2013-06-17 4 views
0

Я пытался достичь URL впараметр только в URL

http://www.dgcportal.com/Services 

Я использую это в моем RegisterRoutes методе:

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

моя ссылка действия:

@Html.ActionLink(category.Name, "", "", new { categoryName = category.Name }, null) 

однако , это дает мне URL-адрес .../?categoryName=Services

Как достичь желаемого эффекта? Я не могу, чтобы мой контроллер назывался Services, поскольку он динамически генерируется. Я вижу явный недостаток в определении маршрута (как он будет маршрутизироваться на другие контроллеры?). Такой маршрут невозможен в MVC 4?

ответ

1

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

@Html.RouteLink(category.Name, "Categories", new { categoryName = category.Name }) 
+0

Это было самое близкое, поэтому я отвечу вам ответ, но он не закончил работу, потому что он создал бесконечный цикл, если categoryName был пуст. Я закончил отображение «Просмотр» в URL-адрес, который является достаточно приемлемым для моей цели. –

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