ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

自定义标记帮助程序-MyEmailTagHelper

2020-03-12 10:01:04  阅读:340  来源: 互联网

标签:body mailto 自定义 标记 MyEmailTagHelper using output MyRazor subject


 1.在项目里面新建标记帮助程序,输入MyEmailTagHelper

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

namespace MyRazor.Models
{
    [HtmlTargetElement("email")]
    public class MyEmailTagHelper:TagHelper
    {

        public string To { get; set; }
        public string Subject { get; set; }
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {

            // Evaluate the Razor content of the email's element body 
            var body = (await output.GetChildContentAsync()).GetContent();
            body = body.Trim();

            // Replace <email> with <a> 
            output.TagName = "a";

            // Prepare mailto URL
            var to = context.AllAttributes["to"].Value.ToString();
            var subject = context.AllAttributes["subject"].Value.ToString();
            var mailto = "mailto:" + to;
            if (!string.IsNullOrWhiteSpace(subject))
                mailto = string.Format("{0}&subject={1}&body={2}", mailto, subject, body);

            // Prepare output
            output.Attributes.Remove(context.AllAttributes["to"]);
            output.Attributes.Remove(context.AllAttributes["subject"]);
            output.Attributes.SetAttribute("href", mailto);
            output.Content.Clear();
            output.Content.AppendFormat("Email {0}", to);
        }
    }
}

2.在ViewImports里面添加@addTagHelper *, MyRazor,注意这里第二个参数是assembly name而不是命名空间

@using MyRazor
@using MyRazor.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, MyRazor

3.在index视图里面增加email标签,输入过程有提示才算正常

@model MyRazor.Models.RoomViewModel

@{
    ViewData["Title"] = "Home Page";
}

@{
     var email = "abc@163.com";
    var subject = "Hello";
}



<email to="@email" subject="@subject" class="btn btn-danger">
    Hello! Today is @DateTime.Today
</email>



 

 

标签:body,mailto,自定义,标记,MyEmailTagHelper,using,output,MyRazor,subject
来源: https://blog.csdn.net/dxm809/article/details/104812434

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有