2011-06-28 42 views
3

指定一个确切的网址,我有以下途径:如何使用Html.ActionLink与MVC3

 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> 2> MVC3更改的语法。

回答

6

使用的RouteLink而不是ActionLink

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

,或者如果你指定控制器和带有ActionLink的动作,并根据您的路线定义顺序正确的路线应该选择的是:

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

问题在于你的参数声明。 这将很好地工作:

无ID:

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

随着ID:

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

你声明一个匿名类型,不用说了属性的名称,只有值。

+0

为什么'id =“Power”'?这是路线的名称。 –

+0

对不起,我误解了你的问题,看看我的编辑。 –