Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
書籍転載:ASP.NET MVC 5 実践プログラミング

書籍転載:ASP.NET MVC 5 実践プログラミング

リンク/エンコード関連のビューヘルパー|ハイパーリンクを生成する - ActionLinkメソッド[Razor]

2014年10月21日

リンク/エンコード関連のビューヘルパー紹介の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項(転載対象外)でも触れましたが、ここでは更にいくつかの例を見てみましょう。

Razor
@Html.ActionLink(
  "詳細",               // リンクテキスト
  "Details",            // アクション名
  "Result",             // コントローラー名
  new { id = "980-NI-05038-8", charset = "utf8" }, // ルートパラメーター
  new { tabindex = 1 }  // その他の属性
)
リスト4-14 Views/Link/Link.cshtml
HTML
<a href="/Result/Details/980-NI-05038-8?charset=utf8" tabindex="1"> 詳細 </a>

 ルートパラメーターで指定できるのは、ルートで定義されているパラメーターばかりではありません。ルートで定義された以外のパラメーターを指定した場合には、クエリー文字列として追加されます。ここではcharsetがルート定義外のパラメーターです*13

  • *13 ルート定義の基本については、2-2-2項(転載対象外)も合わせて参照してください。

 また、ActionLinkメソッドでは、以下のように絶対URIを生成することもできます(ただし、あまり使う機会はないかもしれません)。

Razor
@Html.ActionLink(
  "詳細",              // リンクテキスト
  "Details",           // アクション名
  "Result",            // コントローラー名
  "https",             // プロトコル名
  "www.wings.msn.to",  // ホスト名
  "memo",              // フラグメント(# ~以降)
  new { id = "980-NI-05038-8" }, // ルートパラメーター
  new { tabindex = 1 } // その他の属性
)
リスト4-15 Views/Link/Link.cshtml
HTML
<a href="https://www.wings.msn.to/Result/Details/980-NI-05038-8#memo"
   tabindex="1"> 詳細 </a>

※以下では、本稿の前後を合わせて5回分(第9回~第13回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

書籍転載:ASP.NET MVC 5 実践プログラミング
9. ASP.NET MVC 5.2: 選択ボックスの選択肢をグループ化する - SelectListクラス[Razor]

ASP.NET MVC 5.2以降。Razorで、選択肢をグルーピングした選択ボックスを生成するにはSelectListクラスを使用する。その使い方を解説。書籍転載の9本目(基礎編「4-2-6」)。

書籍転載:ASP.NET MVC 5 実践プログラミング
10. Label/TextBox/TextArea/Password/Hidden/ RadioButton/CheckBoxメソッド[Razor]

XxxxxForメソッドとは異なり、「For」なしのメソッドは、モデルから独立したフォーム要素を生成できる。その使い方を解説。書籍転載の10本目(基礎編「4-2-7」)。

書籍転載:ASP.NET MVC 5 実践プログラミング
11. 【現在、表示中】≫ リンク/エンコード関連のビューヘルパー|ハイパーリンクを生成する - ActionLinkメソッド[Razor]

リンク/エンコード関連のビューヘルパー紹介の1つ目として、アンカータグを生成するためのメソッドの基本的な使い方を解説する。書籍転載の11本目(基礎編「4-3-1」)。

書籍転載:ASP.NET MVC 5 実践プログラミング
12. ルート定義からハイパーリンクを生成する - RouteLinkメソッド[Razor]

リンク先のルートパラメーターを指定したアンカータグを生成できるRouteLinkメソッドの使い方を解説。書籍転載の12本目(基礎編「4-3-2」)。

書籍転載:ASP.NET MVC 5 実践プログラミング
13. アプリケーションルートからの絶対パスを生成する - Url.Content/Action/RouteUrlメソッド[Razor]

リソース指定は、相対パスよりも、アプリケーションルートからの絶対パスの方がよい。そのような絶対パスを生成するUrlオブジェクトの機能を解説。書籍転載の13本目(基礎編「4-3-3」)。

サイトからのお知らせ

Twitterでつぶやこう!