2012-08-25 47 views
0

如何更改以下代碼以生成正確的URL?如何創建一個ActionLink到另一個控制器的Index操作?

注意:ActionLink是由不同於DomainsController的控制器生成的。

@Html.ActionLink("Domains", "Index", "Domains", new { id = item.Name }, null) 

目標是看到下面的URL。

/Domains/ItemName 

什麼我得到的是:

/Domains/Index/ItemName 

任何幫助是極大的讚賞。

回答

0

奇怪的路由:)

這裏去快速和骯髒的解決方案:

@{string link= "Domains/" + item.Name;} 
@Html.ActionLink("Domains", "", link, null, null) 
+0

您對正確的URL有何建議?/ITEMNAME /域?這更有意義,但我不知道如何實現這一點。目標是要有一個用戶友好的URL來顯示與特定項目關聯的域。 – alockrem

+0

這取決於你的結構,安全性要求...我會研究路由選項以找到一個優雅的解決方案,這裏是與MVC資源的鏈接,並且具有路由文章部分:http://msdn.microsoft.com/ EN-US /庫/ gg416514(VS.98)的.aspx – MiBu

0

你的要求是有點不切實際。你當然可以實現與類似

routes.MapRoute(null, 
       "Domains/{id}", 
       new { controller = "Domains", action = "Index" } 
); 

但是,你將不得不對所有的其他DomainsController操作方法創建顯式路由規則,否則你就不能簡單地使用例如/Domains/OtherAction了 - 它會被上述規則所捕獲,並被解釋爲調用Index方法id == "OtherAction"

相關問題