27-自定义标签助手

创建一个发邮件的标签助手

<a href="mailto:admin@FoxDevelop.COM">站长信箱</a>Code language: HTML, XML (xml)

比如我们的FoxDevelop的这个发邮件的这个地址 其实它就是一个超链接 只不过是这个超链接是使用mailto协议

以前我们是http:

我们在MyTagHelper的项目里面去添加一个

EmailTagHelper类 然后需要实现TagHelper这个类

并且重写它的Process方法

using Microsoft.AspNetCore.Razor.TagHelpers;
using System;
using System.Collections.Generic;
using System.Text;

namespace MyTagHelper
{
    /// <summary>
    /// 需要继承TagHelper则个类
    /// </summary>
    public class EmailTagHelper :TagHelper
    {
        /// <summary>
        /// <email mail-to="admin@FoxDevelop.COM" content="站长信箱"/>
        /// </summary>
        public string MailTo { set; get; }

        public string Content { set; get; }

        /// <summary>
        /// 重写Process方法
        /// </summary>
        /// <param name="context"></param>
        /// <param name="output"></param>
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "a"; //最后email标签名替换为a标签
            output.Attributes.SetAttribute("href", "mailto:" + MailTo);//设置属性href
            output.Content.SetContent(Content);//标签中间的内容
        }
    }
}Code language: HTML, XML (xml)

在视图中使用email标签

<email mail-to="admin@FoxDevelop.COM" content="站长信箱" />
<email mail-to="admin@baidu.com.COM" content="联系我们" />Code language: HTML, XML (xml)

最后输出的HTML代码

我们把标签写成

<email mail-to="admin@FoxDevelop.COM" content="站长信箱"></email>
<email mail-to="admin@baidu.com.COM" content="联系我们"></email>Code language: HTML, XML (xml)

否则content不会显示

<a href="mailto:admin@FoxDevelop.COM">站长信箱</a>
<a href="mailto:admin@baidu.com.COM">联系我们</a>Code language: HTML, XML (xml)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注