2009-08-07 135 views
0

我的主页上:Asp.Net MVC ActionLink的具体HREF

http://localhost/ 

http://localhost/Home (yeah, this one too, though I don't like it) 

我有一个foreach循环,通过我的类别循环。我想Html.ActionLink指向:

http://localhost/site/{category-name} 

我目前有:

Html.ActionLink(cat.cat_name, "site", "", new { id = cat.cat_name}, null) 

这指向:

http://localhost/Home/site/{cat_name} 

我想摆脱家庭的。

编辑

不管我是什么页面上,我希望链接指向:

http://localhost/site/{category-name} 
+1

不知道我按照100%的问题,但它看起来像你使用的默认路线和家庭控制器?如果是这种情况,那么你会想改变你的路线和/或你正在使用的控制器。 – YetAnotherDeveloper 2009-08-07 01:05:02

+0

@YetAnotherDeveloper - 将此作为答案发布,因为查看路线指向了正确的方向。谢谢! – Martin 2009-08-07 01:16:37

回答

2

不知道我遵循的问题100%,但它看起来像你使用的是默认的路由和家庭控制器?如果是这种情况,那么你会想改变你的路线和/或你正在使用的控制器。

0

明白了。增加了一个新的途径:

routes.MapRoute(
     "site",            // Route name 
     "site/{id}",       // URL with parameters 
     new { controller = "Site", action = "Index", id = "" } // Parameter defaults 
    ); 

的ActionLink:

<%= Html.ActionLink(cat.cat_name, "index", new {controller = "Site", action = "index", id = cat.cat_name}) %> 

不知道为什么我需要的 “指数”,但它的作品。

1

你不需要特定的路线。只需使用string HtmlHelper.RouteLink(string linkText, object routeValues)帮手:

<%= Html.RouteLink(cat.cat_name, 
    new { controller = "Site", action = "Index", id = cat.cat_name }) %>