0

我试图实现一个 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)

但是,这给了我一个网址.../?categoryName=Services

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

4

2 回答 2

1

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

@Html.RouteLink(category.Name, "Categories", new  { categoryName = category.Name })
于 2013-06-17T02:03:51.320 回答
0

这个超载有效吗?

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

放入控制器和动作名称,我认为它应该可以工作。

于 2013-06-17T02:39:13.630 回答