• TagHelper 中使用 ViewBag 及其他


    自定义一个 TagHelper       ViewContext 引用的空间 using Microsoft.AspNetCore.Mvc.Rendering;

       [HtmlTargetElement("card")]
        public class CardTagHelper: TagHelper
        {
            public string Title { get; set; }
            public string Icon { get; set; }
            public string Url { get; set; }
            public string Tag { get; set; }
    
            [HtmlAttributeNotBound]
            [ViewContext]
            public ViewContext viewContext { get; set; }
    
            IWorkOrderService workOrderService;
            public   CardTagHelper(IWorkOrderService workOrderService)
            {
                this.workOrderService = workOrderService;
            }
    
            public override void Process(TagHelperContext context, TagHelperOutput output)
            {
                output.TagName = Tag??"div";
                output.TagMode = TagMode.StartTagAndEndTag;
    
                
                var preContent = new StringBuilder();
                preContent.Append("<a>test</a>");
                viewContext.ViewBag.zhangsan = Title;
                int count = 0;
                var list = workOrderService.PageFind(0, null, null, null, null, null, 0, 1, 10, out count);
                viewContext.ViewBag.list = list;
                viewContext.ViewBag.count = count;
    
                output.PreContent.SetHtmlContent(preContent.ToString());
                output.PreContent.SetContent(Icon);
            }
        }

     Microsoft.AspNetCore.Mvc 中也有一个 ViewContext ,注意不要引用错

    前端的写法
    引入名称和所在程序集
    @addTagHelper  CooperAdmin.CardTagHelper,CooperAdmin
    
    这里嵌套调用
    <card title="myTitle" icon="myIcon" url="redirectUrl">
        @ViewBag.zhangsan
        <ul>
            @foreach (var li in ViewBag.list)
            {
                <li>@li.Id, @li.Name</li>
            }
        </ul>
    
    
        <card title="myTitle2" icon="myIcon2" url="redirectUrl2">
        </card>
    </card>
    生成的代码:
    
    <div>myIcon
        myTitle
        <ul>
                <li>6643, 苍茫的天涯是我的爱</li>
                <li>6642, 苍茫的天涯是我的爱</li>
                <li>6641, 苍茫的天涯是我的爱</li>
                <li>6640, 苍茫的天涯是我的爱</li>
                <li>6639, 苍茫的天涯是我的爱</li>
                <li>6638, 苍茫的天涯是我的爱</li>
                <li>6637, 苍茫的天涯是我的爱</li>
                <li>6636, 动可爱的人</li>
                <li>6635, 动的收</li>
                <li>6634, 动的收</li>
        </ul>
    
    
        <div>myIcon2
        </div>
    </div>
  • 相关阅读:
    第三方登录原理
    django-rest-framework之 json web token方式完成用户认证
    HTTP Basic Authentication认证
    python 创建虚拟环境
    scrapy pipeline
    beautifulsoup 安装
    scrapy 安装
    Jmeter 安装
    css中的行高line-height
    html块级元素与行内元素
  • 原文地址:https://www.cnblogs.com/netqq/p/15030388.html
Copyright © 2020-2023  润新知