1. 程式人生 > 實用技巧 >.NET Core自定義TagHelper

.NET Core自定義TagHelper

程式碼:

using Microsoft.AspNetCore.Razor.TagHelpers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace NetCoreTestMVC2.Commons
{
    //public class EmailTagHelper : TagHelper
    //{
    //  示例1:<email mail-to="[email protected]"></email>
    //  public string MailTo { get; set; }
    
// public override void Process(TagHelperContext context, TagHelperOutput output) // { // output.TagName = "a"; // output.Attributes.SetAttribute("href",$"mailto:{MailTo}"); // output.Content.SetContent(MailTo); // } // 示例2:<email>[email protected]</email> // public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
// { // output.TagName = "a"; // var content = await output.GetChildContentAsync(); // var target = content.GetContent(); // output.Attributes.SetAttribute("href", $"mailto:{target}"); // output.Content.SetContent(target); // } //} //[HtmlTargetElement(Attributes = "bold")]
//[HtmlTargetElement("bold")] //public class BoldTagHelper : TagHelper //{ // //示例:<p bold>xxx</p> 或者 <bold>xxx</bold> // public override void Process(TagHelperContext context, TagHelperOutput output) // { // output.Attributes.RemoveAll("bold"); // output.PreContent.SetHtmlContent("<strong>"); // output.PostContent.SetHtmlContent("</strong>"); // } //} /// <summary> /// 條件 TagHelper /// <div condition="_SignInManager.IsSignIn(User)">xxx</div> /// 如果 condition 中返回的值是 false 則不會顯示 div /// </summary> //public class ConditionTagHelper : TagHelper //{ // public bool Condition { get; set; } // public override void Process(TagHelperContext context, TagHelperOutput output) // { // if (!Condition) // { // output.SuppressOutput(); // } // } //} //前端使用TagHelper字首,@tagHelperPrefix "tagpre:" //TagHelper 字首,使用在標籤前加上<tagpre:a>xxx</tagpre:a> }