2009-04-18 9 views
6

"AccountController"という名前のコントローラと "ResetPassword"というアクションがあります。 htmlのマークアップから、次のようなことができます:コントローラアクション(url)へのルートをプログラムで取得する

<%= Html.ActionLink("LinkText", "ResetPassword", "AccountController") %> 

正しいURLが出力されます。プログラムでこれを行う方法はありますか?私は、別のクラスの文字列としてurlを取得しようとしていますが、System.Web.Mvc.HtmlHelperにはActionLink()静的メソッドがなく、クラスのインスタンスを作成してもそのクラスは存在しません。

注:HtmlHelperまたはUrlHelperのインスタンスを作成しようとすると、View ContextまたはRequest Contextへの参照が必要になり、コントローラから取得する方法を理解できません(クラスメソッドに渡す)

答えて

10

代わりにUrl.Actionを使用してください。

+0

UrlHelperのインスタンスを作成しようとすると、「requestContext」が要求されます。 UrlHelperインスタンスを作成できるようにrequestContextを取得するにはどうすればよいですか? – codette

+0

コントローラ内にいる場合は、コントローラのHttpContextプロパティを使用します。 –

+0

私はコントローラの外のクラスにあり、HttpContext.Currentは動作しません。私は構文エラーを取得、それは間違ったタイプです。 – codette

関連する問題