2011-06-23 9 views
3

何らかの理由で、私のアクションリンクの動作がユーザーを奇妙な場所に誘導します。奇妙なmvcアクションリンクの動作

私は2つのクラスを持っています:場所とプロパティ。

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

は、だから私はHTMLのリンクと同じ名前を持つメソッドをしたいと思います:「ブラウズ」の場所から

は、私はその場所でプロパティを参照するには、ユーザーにつながるリンクをしたい表示します。

現在のコントローラ/ビューではなく、IDをプロパティコントローラに送信したいと思います。上記の行に「場所」という単語が表示されないことに注目してください。

しかし、URLは終わる:

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

私はそれがこのように終わるしたい:MVC 3で

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

API次のように表示されます。

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

どのようにしたかのようですが、予期しない結果が発生します。

私は間違っていますか?

答えて

5

方法はありませんActionLink(HtmlHelper, String, String, String, Object)です。

htmlHelper, linkText, actionName, routeValues, htmlAttributes 

使用代わりに、この方法:以下のパラメータ名を持つ

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

これは、次のパラメータ名を持つActionLink(HtmlHelper, String, String, Object, Object)を使用している

htmlHelper, linkText, actionName, controllerName, routeValues, htmlAttributes 

参照してください。 the full list of overloads

+1

intellisenseを使用すると、5番目のパラメータに気づいたでしょう。ありがとう。 – micahhoover

3

Html.ActionLinkパラメータの末尾にnullを追加する必要があります。そうでなければ、length=8は常にあなたを狂わせようとします。

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