2012-01-31 57 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