Asp.net-core-razor-tag-helpers
ASP.NET Core-Razor Tag Helpers
タグヘルパーにより、サーバー側のコードは、Razorファイル内のHTML要素の作成とレンダリングに参加できます。 タグヘルパーは新機能であり、HTMLのレンダリングに役立つHTMLヘルパーに似ています。
- フォーム、リンクの作成、アセットの読み込みなどの一般的なタスクのための多くのビルトインタグヘルパーがあります。 タグヘルパーはC#で作成され、要素名、属性名、または親タグに基づいてHTML要素をターゲットにします。
- たとえば、LabelTagHelper属性が適用されている場合、組み込みのLabelTagHelperはHTML <label>要素をターゲットにできます。
- HTMLヘルパーに精通している場合、タグヘルパーは、RazorビューでのHTMLとC#間の明示的な移行を減らします。
タグヘルパーを使用するには、NuGetライブラリをインストールし、これらのタグヘルパーを使用するビューにaddTagHelperディレクティブを追加する必要があります。 ソリューションエクスプローラーでプロジェクトを右クリックし、[NuGetパッケージの管理…]を選択します。
次のプレビューダイアログボックスが表示されます。
OKボタンをクリックしてください。
依存関係セクションでは、 "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final" が追加されていることがわかります。
- 誰でもタグヘルパーを作成できるようになったので、必要なタグヘルパーを考えることができれば、独自のタグヘルパーを作成できます。
- アプリケーションプロジェクト内に直接配置できますが、Razorビューエンジンにタグヘルパーについて通知する必要があります。
- デフォルトでは、これらのタグヘルパーはHTMLに溶け込んでいるように見えますが、クライアントに表示されるだけではありません。
- Razorは、コードを呼び出してタグヘルパーを処理します。 HTMLから自分自身を削除したり、追加のHTMLを追加したりできます。
- タグヘルパーでできることはたくさんありますが、Razorがマークアップでこれらのタグヘルパーを見つけてできるようにするには、タグヘルパーをRazor、さらにはMicrosoftタグヘルパーに登録する必要があります。タグヘルパーを処理するコードを呼び出します。
- そのためのディレクティブはaddTagHelperです。これを個別のビューに配置するか、アプリケーション全体でタグヘルパーを使用する予定がある場合は、以下に示すようにViewImportsファイル内でaddTagHelperを使用できます。
アセンブリ内のすべてのタグヘルパーを登録する構文は、アスタリスクコンマ(、)を使用し、次にアセンブリ名 *Microsoft.AspNet.Mvc.TagHelpers を使用します。 ここの最初の部分は型名であるため、これを使用したい場合に特定のタグヘルパーをリストできます。
ただし、このアセンブリにあるすべてのタグヘルパーを取得する場合は、アスタリスク()*を使用できます。 タグヘルパーライブラリには多くのタグヘルパーがあります。 Indexビューを見てみましょう。
次のプログラムに示すように、最初にホームコントローラーに詳細アクションを追加しましょう。
次に、詳細アクションのビューを追加する必要があります。 Views→Homeフォルダーに新しいビューを作成し、Details.cshtmlを呼び出して次のコードを追加します。
アプリケーションを実行してみましょう。
Razor Tag Helpers Application Run
従業員のIDをクリックすると、詳細ビューが表示されます。
最初の従業員IDをクリックします。
ここでタグヘルパーを使用するには、index.cshtmlファイルに次の行を追加し、HTMLヘルパーを削除します。
以下は、index.cshtmlファイルの完全な移植です。
アプリケーションを再度実行してみましょう。 アプリケーションを実行すると、次のページが表示されます。
以前は、リンクテキストとしてIDを表示していましたが、現在はテキストの詳細を表示しています。 ここで、詳細をクリックして、HTMLヘルパーの代わりにタグヘルパーを使用して正しいURLを作成しています。
- HTMLヘルパー*または*タグヘルパー*のどちらを使用する場合でも、実際には個人の好みの問題です。 多くの開発者は、タグヘルパーの作成と保守が簡単であると感じています。