書籍転載:ASP.NET MVC 5 実践プログラミング
リンク/エンコード関連のビューヘルパー|ハイパーリンクを生成する - ActionLinkメソッド[Razor]
リンク/エンコード関連のビューヘルパー紹介の1つ目として、アンカータグを生成するためのメソッドの基本的な使い方を解説する。書籍転載の11本目(基礎編「4-3-1」)。
書籍転載について
本コーナーは、秀和システム発行の書籍『ASP.NET MVC 5 実践プログラミング』の中から、特にBuild Insiderの読者に有用だと考えられる項目を編集部が選び、同社の許可を得て転載したものです。
『ASP.NET MVC 5 実践プログラミング』の詳細や購入は秀和システムのサイトや目次ページをご覧ください。
ご注意
本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどはBuild Insiderのそれとは一致しません。あらかじめご了承ください。
4-3 リンク/エンコード関連のビューヘルパー
ここでは、リンク/エンコード関連のビューヘルパーを紹介します。アンカータグを生成するもの、URL文字列を生成するもの、文字列から「>」「<」「&」などのHTML予約文字を除去するものなどがあります。
4-3-1 ハイパーリンクを生成する - ActionLinkメソッド
ActionLinkは、アンカータグを生成するためのメソッドです。
【構文】ActionLinkメソッド
MvcHtmlString ActionLink(String linkText, String actionName [,String controllerName [,String protocol , String hostName , String fragment]] [,Object routeValues [,Object htmlAttributes]])
- linkText: リンクテキスト
- actionName: アクション名
- controllerName: コントローラー名
- protocol: プロトコル(http/httpsなど)
- hostName: ホスト名
- fragment: フラグメント
- routeValues: ルートパラメーター
- htmlAttributes:その他の属性
基本的な構文については3-2-1項(※転載対象外)でも触れましたが、ここでは更にいくつかの例を見てみましょう。
@Html.ActionLink(
"詳細", // リンクテキスト
"Details", // アクション名
"Result", // コントローラー名
new { id = "980-NI-05038-8", charset = "utf8" }, // ルートパラメーター
new { tabindex = 1 } // その他の属性
)
|
<a href="/Result/Details/980-NI-05038-8?charset=utf8" tabindex="1"> 詳細 </a>
|
ルートパラメーターで指定できるのは、ルートで定義されているパラメーターばかりではありません。ルートで定義された以外のパラメーターを指定した場合には、クエリー文字列として追加されます。ここではcharsetがルート定義外のパラメーターです*13。
- *13 ルート定義の基本については、2-2-2項(※転載対象外)も合わせて参照してください。
また、ActionLinkメソッドでは、以下のように絶対URIを生成することもできます(ただし、あまり使う機会はないかもしれません)。
@Html.ActionLink(
"詳細", // リンクテキスト
"Details", // アクション名
"Result", // コントローラー名
"https", // プロトコル名
"www.wings.msn.to", // ホスト名
"memo", // フラグメント(# ~以降)
new { id = "980-NI-05038-8" }, // ルートパラメーター
new { tabindex = 1 } // その他の属性
)
|
<a href="https://www.wings.msn.to/Result/Details/980-NI-05038-8#memo"
tabindex="1"> 詳細 </a>
|
※以下では、本稿の前後を合わせて5回分(第9回~第13回)のみ表示しています。
連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。
9. ASP.NET MVC 5.2: 選択ボックスの選択肢をグループ化する - SelectListクラス[Razor]
ASP.NET MVC 5.2以降。Razorで、選択肢をグルーピングした選択ボックスを生成するにはSelectListクラスを使用する。その使い方を解説。書籍転載の9本目(基礎編「4-2-6」)。
10. Label/TextBox/TextArea/Password/Hidden/ RadioButton/CheckBoxメソッド[Razor]
XxxxxForメソッドとは異なり、「For」なしのメソッドは、モデルから独立したフォーム要素を生成できる。その使い方を解説。書籍転載の10本目(基礎編「4-2-7」)。
11. 【現在、表示中】≫ リンク/エンコード関連のビューヘルパー|ハイパーリンクを生成する - ActionLinkメソッド[Razor]
リンク/エンコード関連のビューヘルパー紹介の1つ目として、アンカータグを生成するためのメソッドの基本的な使い方を解説する。書籍転載の11本目(基礎編「4-3-1」)。
12. ルート定義からハイパーリンクを生成する - RouteLinkメソッド[Razor]
リンク先のルートパラメーターを指定したアンカータグを生成できるRouteLinkメソッドの使い方を解説。書籍転載の12本目(基礎編「4-3-2」)。
13. アプリケーションルートからの絶対パスを生成する - Url.Content/Action/RouteUrlメソッド[Razor]
リソース指定は、相対パスよりも、アプリケーションルートからの絶対パスの方がよい。そのような絶対パスを生成するUrlオブジェクトの機能を解説。書籍転載の13本目(基礎編「4-3-3」)。