ASP.NET MVC4 ActionLink在链接中显示“索引”

时间:2013-03-24 23:59:22

标签: asp.net-mvc-4

通常,路由到任何控制器的Index操作的ActionLink将省略链接中的“Index”,即http://localhost:8080/Controller/id。在我的情况下,我试图将字符串作为ID传递给Eta控制器的Index操作。代码如下:

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

结果链接显示为:http://localhost:8080/Eta/Index/some-input-string而不是http://localhost:8080/Eta/some-input-string

此RouteConfig与File> New Project> MVC4 Application完全相同。

2 个答案:

答案 0 :(得分:3)

包含“索引”作为URI中的操作是必要的,因为您在字符串中包含路由值。

如果不指定动作,路线值将被解释为动作。

例如:

http://localhost:8080/Etc/abc123
                       ^    ^
                Controller  |
                            |
                        Action (oops)

对你而言,abc123是一个有意义的参数。对于路由引擎,这是一个动作。

答案 1 :(得分:0)

MVC4模板中的标准路由为{Controller} / {Action} / {id},因此您需要将其更改为{Controller} / {id},默认Action =“Index”