通常,路由到任何控制器的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完全相同。
答案 0 :(得分:3)
包含“索引”作为URI中的操作是必要的,因为您在字符串中包含路由值。
如果不指定动作,路线值将被解释为动作。
例如:
http://localhost:8080/Etc/abc123
^ ^
Controller |
|
Action (oops)
对你而言,abc123
是一个有意义的参数。对于路由引擎,这是一个动作。
答案 1 :(得分:0)
MVC4模板中的标准路由为{Controller} / {Action} / {id},因此您需要将其更改为{Controller} / {id},默认Action =“Index”