在自定义标签助手中使用 Razor 标签助手

2023-12-27

你好,这是我的标签助手

    [HtmlTargetElement("card")]
    public class CardTagHelper : TagHelper
    {
        public string Title { get; set; }
        public string Icon { get; set; }
        public string Url { get; set; }

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "CardTagHelper";
            output.TagMode = TagMode.StartTagAndEndTag;

            var preContent = new StringBuilder();
            preContent.AppendFormat($@"
                    <div class='card custom-card'>
                        <div class='card-header'>
                            <div class='card-title'>");

            if (Url != null)
            {
                preContent.AppendFormat($@"
                                <a asp-for='{Url}'>
                                    <div class='float-left return'>
                                        <i class='fas fa-arrow-alt-circle-left fa-lg'></i>
                                    </div>
                                </a>");
            }

preContent.AppendFormat($@"<i class='{Icon}'></i>
                                {Title}
                            </div>
                        </div>
                        <div class='card-body'>");

            var postContent = new StringBuilder();
            postContent.AppendFormat($@"                                   
                        </div>
                        <div class='card-footer'>
                        </div>
                    </div>");

            output.PreContent.SetHtmlContent(preContent.ToString());
            output.PostContent.SetHtmlContent(postContent.ToString());
        }
    }
}

输出是 bootstrap 4 卡

<card title="myTitle" icon="myIcon" url="redirectUrl">

    // Content here

</card>

我的问题是,我想在锚点的条件渲染字符串上使用 asp-page 而不是 href,但是当我添加它时,它没有任何效果或任何可点击的。

EDIT

这些是我的视图导入,正如建议的那样,我尝试在 Asp.Net Core 之前包含我的自定义助手

@using MyProject
@namespace MyProject.Pages
@addTagHelper *, MyProject
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

但是,我没有找到任何文章解释如何在自定义标签帮助程序中使用 Razor 标签帮助程序。但对于我的解决方案,我必须使用实际的“href”标签而不是“asp-for”剃刀标签助手,如下所示。

    public string Url { get; set; }

    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        var content = $@"<a class='nav-link text-dark' href='/{Url}'>{Title}</a>";
        output.TagName = "li";
        output.Content.SetHtmlContent(content);
        output.Attributes.Add("class", "nav-item");
    }

Razor 标签助手的行为与它为您所做的相同,@Jackal。生成的 HTML 如下所示 -

<li class="nav-item"><a class="nav-link text-dark" href="/Index">Home</a></li>
<li class="nav-item"><a class="nav-link text-dark" href="/Restaurants/List">Restaurants</a></li>

希望能帮助到你。谢谢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在自定义标签助手中使用 Razor 标签助手 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 私有模板函数

    我有一堂课 C h class C private template
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 两个相似的位姿具有较大的相对欧拉角

    欧拉角表示的相似位姿有两种 s euler angle o1 0 000549608 3 1334 1 23193 s euler angle o2 0 0222646 3 10948 1 31032 但 Eigen 计算出的相对欧拉角为
  • datagridview 虚拟模式,更新 RowCount 会导致 CellValueNeeded 为所有行触发

    我正在尝试实现 datagridview 的虚拟模式 但是当我将 RowCount 设置为某个数字 以显示滚动条 时 网格希望同时拥有所有行 而不仅仅是显示的行 DataGridView grid new grid VirtualMode
  • Matlab 周末提取

    我有一个大小为 364 x 5 的矩阵 timeVectorDaily 该矩阵具有十进制天数形式的数据 例如 734870 734870 2 734870 4 734870 6 734870 8 734871 734871 2 734871
  • 同时按下按键

    我可以知道在Javascript中同时按下的键的数量吗 如果是这样 我怎样才能拥有他们的数组keyCode 您可以监听 keydown 和 keyup 事件 var keys length 0 document onkeydown func
  • 使用 Python/bokeh 在网站中嵌入绘图

    我试图在个人网站中静态嵌入散景图 但遇到了一些我不理解的行为 基本上 我使用散景生成一个绘图 如下所示 import bokeh plotting as bplt import numpy as np x np random random
  • 如何将二维数组传递到 pycuda 的内核中?

    我找到了答案here https stackoverflow com questions 13282596 how do i feed a 2 dimensional array into a kernel with pycuda 但尚不清
  • 四舍五入到最接近的 100

    如何将整数四舍五入到最接近的 100 例如 497 将四舍五入为 500 98 将四舍五入为 100 1423 将四舍五入为 1400 我会除以 100 四舍五入 然后再次相乘 int initial int rounded int Mat
  • WPF 画布 VisibilityChanged 事件

    我想设置一个事件来运行Visibility在 WPF 上更改Canvas控制 canvas1 VisibleChanged new EventHandler canvas1 VisibleChanged 我已经尝试了上面的方法 但不起作用
  • 如何从嵌套对象生成查询字符串

    我想为我的高级过滤器生成一个查询字符串 我的对象如下所示 searchValue firstName John lastName Doe postalCode 3130 city New York page 1 我正在使用请求参数 http
  • AWS SES SendBulkTemplatedEmail,示例以及如果超出配额会发生什么情况?

    我有两个关于 AWS SES SendBulkTemplatedEmail 的问题 1 有谁知道 Net 中的分步教程吗 我只见过使用 CLI 的示例 并且正在摸索 API 来尝试使其工作 2 每个SendBulkTemplatedEmai
  • 如何在 dplyr 中链接 ifelse 语句

    我试图在我的 R 函数之一中链接 ifelse 语句 基本上我想做的是 do something lt function df cond TRUE df gt ifelse cond do something do something el
  • JQuery 自动完成替代选择下拉菜单

    我在文本输入上使用 jQuery 自动完成小部件来替换选择下拉列表 当用户单击文本框时 建议下拉菜单将打开 我的解决方案在 FireFox 中运行良好 但在 Internet Explorer 8 中运行时出现一些故障 在 Internet
  • 我如何知道何时在组合框中“重新选择”某个值?

    我正在使用 ComboBox 将文本模板插入 RichEdit 控件 模板的名称位于 ComboBox 的选项列表中 除非用户再次在列表中选择相同的值 否则一切都很好 然后SelectionChanged没有开火 根据事件的名称 这是有意义
  • 使用http劫持器有什么好处

    Go http pkg 提供了一个Hijacker http golang org pkg net http Hijacker接口 谁能告诉我什么时候应该使用它 我检查了评论 在劫持调用让调用者接管连接之后 HTTP 服务器库不会对该连接执
  • java中的正则表达式及其与indexOf的性能比较

    请有人告诉我如何匹配 和句点 使用正则表达式在字符串中恰好出现一次 而且使用 indexOf 而不是正则表达式更有效 String s Hello Wor ld or s 12323 asdfasd 基本上任何字符都可以出现在之前和之后 a
  • 使用jstree打开一个节点及其所有父节点

    我正在尝试使用 jstree 并在打开页面时打开一个节点及其所有父节点 这是我用来测试的html代码 div ul li a href TEST1 a ul li a href TEST2 a li li a href TEST3 a li
  • CSS 中 SVG“defs”标签的正确行为是什么?

    当编写带有嵌入 CSS 的 SVG 代码时
  • python 覆盖我的列表元素

    对 python 相当新 对 python 类非常新 问题有点复杂 最感谢您的耐心 我有一个 明星 班 很简单 属性 x v 和质量 另一个类 Galaxy 有一个属性 stars 它只是星星对象的列表 class Galaxy numst
  • 如何在 2D 中找到直线与椭圆的交点 (C#)

    我需要找到一条线 其原点是椭圆的中心 与二维椭圆相交的点 我可以轻松找到圆上的点 因为我知道角度 F 和圆的半径 R x x0 R cosF y y0 R sinF 然而我只是不知道我应该如何处理椭圆 我知道它的尺寸 A B 但是找到参数T
  • 在自定义标签助手中使用 Razor 标签助手

    你好 这是我的标签助手 HtmlTargetElement card public class CardTagHelper TagHelper public string Title get set public string Icon g