TagHelperに関すること--TagHelperの基本的な知識

2841 ワード

概要


TagHelperはASP.NET 5の新しい特性.まだ聞いたことがないときは、技術者の間で多くの議論を呼んでいるかもしれません.一部では、サーバコントロールの回帰と呼ばれています.実際には、HTMLとサーバのコンテンツを混合した簡略化されたバージョンにすぎず、コントロールライフサイクル、ステータス保持、イベントはありません.サーバコントロールのように、ページのすべてのコンテンツにアクセスする権限はありません.生成されたコンテンツにのみアクセスできます.

TagHelperとは?


私たちはMVCプロジェクトでHtmlHelpsを使用したことがあります.たとえば、Viewにナビゲーションバーを追加する必要がある場合は、次のコードをページに追加します.
<ol>
…
<li>@Html.ActionLink("Home", "Index", "Home")<li>
…
</ol>

ここにはいくつかのHTML要素があります.@で始まるC#コードもあり、Viewで解析するとHTML要素に解析されます.
TagHelperを使用すると、次のコードを使用して同じ効果を得ることができます.
<ol>
…
<li><a controller="Home" action="Index">Home</a></li>
…
</ol>

ここで,A要素の属性controllerとactionはHTML 5の属性ではなく,このTagHelperの属性である.
ここでは、TagHelperが以前のサーバコントロールの書き方に似ているように見えますが、サーバコントロールの再回帰ではありません.ユーザーの意思を簡潔に表現するように見えます.それ自体にライフサイクルのようなものはありません.サーバのコンテンツを前処理し、対応するプロパティに値を割り当てます.マイクロソフトが提供するSelectTagHelperの使い方を見てみましょう.
<select asp-for="Country" asp-items="ViewBag.Countries">

ここで、テキスト「Country」はasp-for属性、変数ViewBagに付与.Countriesは属性asp-itemsに付与.

TagHelpersはどうやって使いますか?


TagHelpersの使用方法については、いくつかのステップを参照してください.
  • はプロジェクトにあります.jsonファイルにTagHelpersを持つpackageの依存を追加します.
  • 使用したViewにTagHelperを登録します.
    @addTagHelper “[the full type name of taghelper,] the assembly name”
    

    最初のパラメータはTagHelperクラスのフルネームです.TagHelperを使用する必要がある場合は、NameSpaceを含むTagHelperクラスのフルネームを指定できます.プログラムセットのすべてのTagHelpersを使用する場合は、ここで「*」を使用するか、このパラメータを省略できます.たとえば、マイクロソフトが提供するTagHelpersを使用する必要がある場合は、次のコードを追加して登録できます.
    @addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" 
    

    または
    @addTagHelper "Microsoft.AspNet.Mvc.TagHelpers"
    

    AnchorTagHelperのみを使用する場合は、コードを少しだけ必要とします.
    @addTagHelper "Microsoft.AspNet.Mvc.TagHelpers.AnchorTagHelper, Microsoft.AspNet.Mvc.TagHelpers"
    

    2番目のパラメータはプログラムセット名です.もちろん、TagHelperの登録をキャンセルしたい場合は、removeTagHelperを使用します.たとえば
    @removeTagHelper "Microsoft.AspNet.Mvc.TagHelpers.AnchorTagHelper, Microsoft.AspNet.Mvc.TagHelpers"
    

    TagHelperが登録解除されると、対応するTagはこのTagHelperとして解析できなくなる.
  • ビューで使用する必要がある場所にTagHelperを追加します.たとえば、AnchorTagHelperを追加します.
    <a asp-controller="Home" asp-action="About">About</a> 


  • 本文の最後に書く


    以上、TagHelperの基本的な知識を紹介しました.これはASPに基づいています.NET 5 beta 4の、ASP.NET 5はまだ開発中であり,現在beta 5がリリースされているが,いくつかのものも変化しているため,上に書いたいくつかのメソッド名,プログラムセット名が新しいバージョンで変化している可能性がある点に注意が必要である.
    次に、マイクロソフトが提供してくれたTagHelpersと、自分のTagHelperをどのように開発するかについて紹介します.