2009-08-07 144 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 }) %>