2012-01-31 42 views

回答

5

這是由於默認路由。如果您不指定默認操作和控制器,它將生成/home/index作爲url。

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { id = UrlParameter.Optional } 
); 
+0

可以查找和更改默認在Global.asax文件中路由 – Kaido 2012-01-31 12:58:04

+0

我認爲路由是分析請求的url,但ActionLink是生成一個url,而不是來自瀏覽器的請求,它爲什麼會受到路由的影響? – avatas 2012-01-31 13:10:48

+1

@avatas,所有與urls一起工作的HTML助手都會在生成這些url時使用您的路由定義。所以他們肯定受到路線的影響。 – 2012-01-31 13:11:30

2

路由是雙向的:
- 在:它進入的網址轉換成控制器/動作/參數
- 退房:控制器/動作/參數轉換成網址

+0

謝謝。那麼爲什麼@ Html.ActionLink(「Index」,「Index」,「home」)='Index',和@ Html.ActionLink(「Test1」,「Index」,「test1」)='test1'。 – avatas 2012-02-01 01:19:36

+0

默認值在生成的url中被忽略。 index是默認值(action),home是默認值(controller)。結果:「/」。對於第二個動作鏈接,test1不是默認值,但索引是。結果:/ test1(test1是控制器) – Softlion 2012-02-01 22:29:14

相關問題