ASP Core。のカスタムタグヘルパーの作成に関するいくつかのガイドに従いました。
これは私のヘルパーです:
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.Razor.TagHelpers;
using System;
namespace ToolControlSystem.TagHelpers
{
[HtmlTargetElement("description", Attributes = DescriptionAttributeName, TagStructure = TagStructure.NormalOrSelfClosing)]
public class DescriptionTagHelper : TagHelper
{
private const string DescriptionAttributeName = "asp-for";
[HtmlAttributeName(DescriptionAttributeName)]
public ModelExpression Model { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
base.Process(context, output);
var description = GetDescription(Model.ModelExplorer);
output.TagName = "span";
output.TagMode = TagMode.StartTagAndEndTag;
output.Content.SetContent(description);
}
private string GetDescription(ModelExplorer modelExplorer)
{
string description;
description = modelExplorer.Metadata.Placeholder;
if (String.IsNullOrWhiteSpace(description))
{
description = modelExplorer.Metadata.Description;
}
return description;
}
}
}
これを_ViewImports.cshtml
にドロップします:@addTagHelper *, ToolConstrolSystem.TagHelpers
Annnndd ...何もありません。インテリセンス、タグの置き換えはありません...
何か案は?
ビューのインポートファイルにはアセンブリ名のみを指定する必要があります。
_ViewImports.cshtml:
@addTagHelper *, ToolConstrolSystem
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, AuthoringTagHelpers
上記のコードは、ワイルドカード構文( "*")を使用して、指定されたアセンブリ(Microsoft.AspNetCore.Mvc.TagHelpers)のすべてのタグヘルパーが、Viewsディレクトリまたはサブディレクトリのすべてのビューファイルで使用できるように指定します。