仅在url中的参数

时间:2013-06-17 00:36:35

标签: c# asp.net-mvc asp.net-mvc-routing

我试图获得

的网址
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)

然而,这给了我一个.../?categoryName=Services

的网址

如何达到预期的效果?我不能将我的控制器称为服务,因为它是动态生成的。我可以看到我的路由定义中的明显缺陷(它将如何路由到其他控制器?)MVC 4中是否存在这样的路由?

2 个答案:

答案 0 :(得分:1)

您的地图路线似乎正确,但我认为您应该使用RouteLink而不是ActionLink来生成您的链接:

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

答案 1 :(得分:0)

这种超载是否有效?

http://msdn.microsoft.com/en-us/library/dd504972(v=vs.108).aspx

将控制器和操作名称放入,我认为它应该可行。