ASP.NET Core MVC–Tag Helperコンポーネント
6908 ワード
ASP.NET Core Tag Helpersシリーズカタログ、これは第5編、計5編です. ASP.NET Core MVC–Tag Helpers紹介 ASP.NET Core MVC – Caching Tag Helpers ASP.NET Core MVC – Form Tag Helpers ASP.NET Core MVC–カスタムTag Helpers ASP.NET Core MVC–Tag Helperコンポーネント
前にいくつかの文章でTag Helpersについて話しましたが、今回は他のことについて議論します.
ASP.NET Core 2はまた、新しい機能であるTag Helperコンポーネントを提供しています.
Tag Helperコンポーネントは、Tag Helperとともに動作する特定のHTMLの生成または変更を担当します.
Tag HelperはTag Helperコンポーネントを実行します.
Tag Helperコンポーネントは、HTMLに動的にコンテンツを追加する最も完璧な選択です.
Tag Helperコンポーネントを実行するには、特定のTag Helperを設定する必要があります.このTag Helperは,内蔵抽象クラスから
私は知っています.私はこの命名が非常に困惑していることを知っています.
まず新しいTag Helperコンポーネントを作成します.headとbodyラベルを内蔵したTag Helperコンポーネントを作成できます.特殊クラス
例を見てみましょう.
新しいRazor Pagesテンプレートの作成から始めます.
Tag Helperコンポーネントを正常に動作させるには、次の手順に従います.新しいTag Helperコンポーネント を作成は、DI にコンポーネントを注入する. を作成 Tag Helperを .
新しいTag Helperコンポーネントを作成します.
Tag Helperを使用したことがある場合は、よく知っているはずです.例では、組み込まれた
Tag Helperコンポーネントをアプリケーションの一部として、サービスコンテナに注入する必要があります.
作成したTag Helperコンポーネントを使用できます!
Tag Helperの作成:
最初の行に注意してください.このTag Helperアシスタントのターゲットは、HTML内のすべてのarticle要素/タグです.
このTag Helperをアプリケーションに知らせるには、
実際の効果を見るには、コードに少なくとも1つのarticleラベルが必要です.そのため、
コードは非常に簡単で、TagHelperComponentTagHelperクラスから継承され、head HTML要素がターゲットです.
デフォルトの
内蔵HeadTagHelperは、カスタムTag Helperコンポーネントを使用してheadラベルを変更できます.
すべてのheadラベルを確認するTag Helperコンポーネントを追加します.
もちろん、追加された
サンプルコードはGitHub-SampleTagHelperComponentです.
Tag Helperコンポーネントは、HTMLにコンテンツを動的に追加するために使用することができる .特殊Tag Helper(TagHelperComponentTagHelperクラスから継承)は、すべての一致するTag Helperコンポーネント を実行する
原文:『ASP.NET Core MVC–Tag Helper Components』https://codingblast.com/tag-helper-components/翻訳:Sweet Tang本文のアドレス:http://www.cnblogs.com/tdfblog/p/tag-helper-components-in-asp-net-core-mvc.html転載を歓迎して、明らかな位置で出典とリンクを出してください.
Tag Helperコンポーネント-概要
前にいくつかの文章でTag Helpersについて話しましたが、今回は他のことについて議論します.
ASP.NET Core 2はまた、新しい機能であるTag Helperコンポーネントを提供しています.
Tag Helperコンポーネントは、Tag Helperとともに動作する特定のHTMLの生成または変更を担当します.
Tag HelperはTag Helperコンポーネントを実行します.
Tag Helperコンポーネントは、HTMLに動的にコンテンツを追加する最も完璧な選択です.
Tag Helperコンポーネントを実行するには、特定のTag Helperを設定する必要があります.このTag Helperは,内蔵抽象クラスから
TagHelperComponentTagHelper
を継承する必要がある.私は知っています.私はこの命名が非常に困惑していることを知っています.
TagHelperComponentTagHelper
から継承されるタイプはTag Helperであり、これに一致するTag Helperコンポーネントが実行される.ステップ
まず新しいTag Helperコンポーネントを作成します.headとbodyラベルを内蔵したTag Helperコンポーネントを作成できます.特殊クラス
TagHelperComponentTagHelper
から継承されたTag Helperは、いずれもTag Helperコンポーネントを作成することができる.例を見てみましょう.
新しいRazor Pagesテンプレートの作成から始めます.
dotnet new razor
Tag Helperコンポーネントを正常に動作させるには、次の手順に従います.
TagHelperComponentTagHelper
から継承されたTag Helperクラス_ViewImports.cshtml
ファイルに含む新しいTag Helperコンポーネントを作成します.
public class ArticleTagHelperComponent : TagHelperComponent
{
public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
if (string.Equals(context.TagName, "article", StringComparison.OrdinalIgnoreCase))
{
output.PostContent.AppendHtml("console.log('ASP.NET Core - Love From Console'); ");
}
return Task.CompletedTask;
}
}
Tag Helperを使用したことがある場合は、よく知っているはずです.例では、組み込まれた
TagHelperComponent
抽象クラスから継承され、ProcessAsync
メソッドが書き換えられる.Tag Helperコンポーネントをアプリケーションの一部として、サービスコンテナに注入する必要があります.
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient();
services.AddMvc();
}
作成したTag Helperコンポーネントを使用できます!
Tag Helperの作成:
[HtmlTargetElement("article")]
[EditorBrowsable(EditorBrowsableState.Never)]
public class ArticleTagHelperComponentTagHelper : TagHelperComponentTagHelper
{
public CodingBlastTagHelper(ITagHelperComponentManager componentManager, ILoggerFactory loggerFactory)
: base(componentManager, loggerFactory)
{
}
}
最初の行に注意してください.このTag Helperアシスタントのターゲットは、HTML内のすべてのarticle要素/タグです.
このTag Helperをアプリケーションに知らせるには、
_ViewImports.cshtml
ファイルに追加する必要があります. @using IntroTagHelperComponent
@namespace IntroTagHelperComponent.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper SampleTagHelperComponent.ArticleTagHelperComponentTagHelper, SampleTagHelperComponent
実際の効果を見るには、コードに少なくとも1つのarticleラベルが必要です.そのため、
Index.cshtml
ページを変更します.
@model IndexModel @{ ViewData["Title"] = "Home page"; }
TagHelperComponent will add stuff here.
Tag Helperを内蔵したTag Helperコンポーネント
目前有两个内置的 Tag Helper 继承自TagHelperComponentTagHelper
类,它们位于 Microsoft.AspNetCore.Mvc.TagHelpers 程序集中 。
这两个标签助手是 HeadTagHelper 和 BodyTagHelper。它们使我们很容易将内容注入 head 和 body 中。我们所要做的是创建 Tag Helper 组件并将其注入我们的应用程序中。
这是 HeadTagHelper 的代码(aspnet/Mvc GitHub 仓库):
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.ComponentModel;
using Microsoft.AspNetCore.Razor.TagHelpers;
using Microsoft.Extensions.Logging;
namespace Microsoft.AspNetCore.Mvc.Razor.TagHelpers
{
///
/// A targeting the <head> HTML element.
///
[HtmlTargetElement("head")]
[EditorBrowsable(EditorBrowsableState.Never)]
public class HeadTagHelper : TagHelperComponentTagHelper
{
///
/// Creates a new .
///
/// The which contains the collection
/// of s.
/// The .
public HeadTagHelper(ITagHelperComponentManager manager, ILoggerFactory loggerFactory)
: base(manager, loggerFactory)
{
}
}
}
コードは非常に簡単で、TagHelperComponentTagHelperクラスから継承され、head HTML要素がターゲットです.
デフォルトの
_ViewImports.cshtml
ファイルの内容を表示すると、デフォルトでは次の内容が含まれます.@using IntroTagHelperComponent
@namespace IntroTagHelperComponent.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
内蔵HeadTagHelperは、カスタムTag Helperコンポーネントを使用してheadラベルを変更できます.
すべてのheadラベルを確認するTag Helperコンポーネントを追加します.
public class HeadTagHelperComponent : TagHelperComponent
{
public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
if (string.Equals(context.TagName, "head", StringComparison.OrdinalIgnoreCase))
{
output.PostContent.AppendHtml("<script>console.log('head tag');</script>");
}
return Task.CompletedTask;
}
}
もちろん、追加された
HeadTagHelperComponent
をアプリケーションに注入する必要があります. public void ConfigureServices(IServiceCollection services)
{
services.AddTransient();
services.AddMvc();
}
コード#コード#
サンプルコードはGitHub-SampleTagHelperComponentです.
まとめ
原文:『ASP.NET Core MVC–Tag Helper Components』https://codingblast.com/tag-helper-components/翻訳:Sweet Tang本文のアドレス:http://www.cnblogs.com/tdfblog/p/tag-helper-components-in-asp-net-core-mvc.html転載を歓迎して、明らかな位置で出典とリンクを出してください.