2011-06-23 94 views
3

出於某種原因,我的動作鏈接行爲會將用戶發送到一個陌生的地方。奇怪的mvc動作鏈接行爲

我有兩個類:位置和屬性。

從位置查看我想,導致用戶瀏覽該位置屬性的鏈接:

@Html.ActionLink("Browse", "Browse", "Property", new { id=item.ID }) 

所以我想的HTML鏈接,並具有相同的名稱的方法:「瀏覽」。

而不是在當前的控制器/視圖中,我想將ID發送到屬性控制器。注意「位置」一詞不會出現在上面的行中。

但URL結束:

http://localhost:50164/Location/Browse?Length=8

我希望它最終是這樣的:

http://localhost:50164/Property/Browse?Length=8

API中的MVC 3似乎是:

ActionLink("text to display as HTML link", "action name", "controller", "parameters") 

這似乎是我是如何做到的,但我得到了意想不到的結果。

我在做什麼錯?

回答

5

沒有方法簽名ActionLink(HtmlHelper, String, String, String, Object)

它使用它具有以下參數名稱ActionLink(HtmlHelper, String, String, Object, Object)

htmlHelper, linkText, actionName, routeValues, htmlAttributes 

使用此方法代替:

@Html.ActionLink("Browse", "Browse", "Property", new { id=item.ID }, null) 

它具有以下參數名:

htmlHelper, linkText, actionName, controllerName, routeValues, htmlAttributes 

the full list of overloads

+1

你會想到intellisense我會注意到第五個參數。謝謝。 – micahhoover

3

您必須將null添加到您的Html.ActionLink參數的末尾,否則此length=8將始終嘗試讓您發瘋。

@Html.ActionLink("Browse", "Browse", "Property", new { id = item.ID }, null)