2010-04-21 65 views
25

我有幾個動作鏈接,當呈現正在獲得一個長度鍵/值增加,似乎表示控制器名稱的字符數。這怎麼能被刪除?ASP.NET MVC - 爲ActionLinks添加querystring「length =」?

+2

重複,很多很多次:http://stackoverflow.com/search?q=[asp.net-mvc]+actionlink+length – 2010-04-21 20:25:09

+0

感謝您的鏈接 – ScottG 2010-04-21 20:44:24

回答

41

有人猜測,您可能使用了Html.ActionLink的錯誤重載,並將其添加到路由參數中而不是HTML屬性中。在指定HTML屬性之前,您需要添加一個NULL作爲第四個參數。例如:

Html.ActionLink("Title", "Action", "Controller", null ,new { title = "Title"}) 

發佈您的代碼,如果這不起作用。

+0

就是這樣。我正在使用命名參數,但仍然必須添加routeValues:null以擺脫此查詢字符串。 – arche89 2017-08-31 14:17:48

3

你需要棍棍額外的一個空對象參數在htmlattributes之前,像這樣把我的頭

html.actionlink("a","b","c",new {},new {@class = "d"}) 
2

檢查的頂部,如果你的使用Html.ActionLink權超負荷看到的。

它們會變得棘手,因爲它們會接受任何對象,甚至是匿名對象,並根據您使用的過載將它們轉換爲路由值字典或html屬性。既然它會運行並編譯好,如果你把這兩個弄得很難分辨是否使用了正確的過載。

1

如果您傳遞 'routeValues',

確保 'htmlAttributes' 設置爲null

Html.ActionLink("Title", "Action", "Controller", new {}, null) 

否則選擇錯誤的超載AcitonLink