如何使用Html.ActionLink指定MVC3的确切URL

时间:2011-06-28 09:19:28

标签: asp.net-mvc asp.net-mvc-3 razor

我有以下路线:

        routes.MapRoute(
            "Power", // Route name
            "Power/{id}", // URL with parameters
            new 
            { 
                controller = "flood", 
                action = "index", 
                id = UrlParameter.Optional 
            }
        );

以及我打电话的以下地址:

<a href="/Power/"  >

现在我想用这样的Html.ActionLink进行上述调用:

@Html.ActionLink("xxx", 
                "index",
                "flood",
                new { "Power" },
                null 
                )

似乎没有工作,因为我收到错误“无效的匿名类型声明”,我有新的{“Power”}。有人可以给我一些建议,让我走上正确的轨道。

我还希望能够通过另一个链接调用以下内容:

<a href="/Power/001"  >`

感谢

PS。请注意我使用的是MVC3。我理解这个版本的语法从版本1&gt; 2&gt; MVC3。

2 个答案:

答案 0 :(得分:6)

使用RouteLink代替ActionLink

@Html.RouteLink("xxx", "Power", new { id = "123" })

或者如果您使用ActionLink指定控制器和操作,并根据您的路线定义顺序选择正确的路线:

@Html.ActionLink("xxx", "index", "flood", new { id = "123" }, null)

答案 1 :(得分:0)

问题在于声明参数。 这样可以正常工作:

没有ID:

@Html.ActionLink("xxx", 
            "index",
            "flood")

ID:

@Html.ActionLink("xxx", 
            "index",
            "flood",
            new { id =123 },
            null 
            )

您正在声明一个匿名类型,而不是说该属性的名称,只是该值。