2011-06-28 80 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

對不起,我誤解了你的問題,看看我的編輯。 –