当前位置: 首页 > 编程笔记 >

asp.net-core 自定义标签助手

张和豫
2023-03-14
本文向大家介绍asp.net-core 自定义标签助手,包括了asp.net-core 自定义标签助手的使用技巧和注意事项,需要的朋友参考一下

示例

您可以通过实现ITagHelper便捷类或从便捷类派生来创建自己的标记帮助器TagHelper。

  • 默认约定是将与帮助程序名称匹配的html标签作为目标,而不带可选的TagHelper后缀。例如WidgetTagHelper将目标<widget>代码定位。

  • 该[HtmlTargetElement]属性可用于进一步控制要定位的标签

  • 可以在剃刀标记中为该类的任何公共属性提供值作为属性。例如,public string Title {get; set;}可以给公共财产一个值,例如<widget title="my title">

  • 默认情况下,标记助手将Pascal大小写的C#类名称和标记助手的属性转换成小写的kebab大小写。例如,如果您省略了使用[HtmlTargetElement],而类名是WidgetBoxTagHelper,则在Razor中您将编写<widget-box></widget-box>。

  • Process并ProcessAsync包含渲染逻辑。两者都接收一个上下文参数,其中包含有关正在渲染的当前标签的信息,以及一个用于自定义渲染结果的输出参数。

包含自定义标签帮助程序的所有程序集都需要添加_ViewImports.cshtml文件中(请注意,这是正在注册的程序集,而不是名称空间):

@addTagHelper *, MyAssembly

样本小部件自定义标签助手

下面的示例创建一个自定义的小部件标签帮助程序,该工具将针对剃刀标记,例如:

<widget-box title="My Title">This is my content: @ViewData["Message"]</widget-box>

它将呈现为:

<div class="widget-box">
    <div class="widget-header">My Title</div>
    <div class="widget-body">This is my content: some message</div>
</div>

创建此类标签帮助程序所需的代码如下:

[HtmlTargetElement("widget-box")]
public class WidgetTagHelper : TagHelper
{
    public string Title { get; set; }

    public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
    {
        var outerTag = new TagBuilder("div");
        outerTag.Attributes.Add("class", output.TagName);
        output.MergeAttributes(outerTag);
       output.TagName= outerTag.TagName;

        //创建标题
        var header = new TagBuilder("div");
        header.Attributes.Add("class", "widget-header");
        header.InnerHtml.Append(this.Title);
        output.PreContent.SetHtmlContent(header);

        //创建正文并替换原始标签帮助程序内容
        var body = new TagBuilder("div");
        body.Attributes.Add("class", "widget-body");
        var originalContents = await output.GetChildContentAsync();
        body.InnerHtml.Append(originalContents.GetContent());
        output.Content.SetHtmlContent(body);
    }
}
           

 类似资料:
  • 本文向大家介绍asp.net-core 选择标签助手,包括了asp.net-core 选择标签助手的使用技巧和注意事项,需要的朋友参考一下 示例 假设您的视图被强类型化为这样的视图模型 在GET操作方法中,您将创建此视图模型的对象,设置Categories属性并将其发送到视图 在你看来 这将呈现以下标记(仅包括表单/字段的相关部分) 在表单提交中获取选定的下拉值 您可以使用与HttpPost操作方

  • 本文向大家介绍asp.net-core 表单标签助手-基本示例,包括了asp.net-core 表单标签助手-基本示例的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 本文向大家介绍asp.net core标签助手的高级用法TagHelper+Form,包括了asp.net core标签助手的高级用法TagHelper+Form的使用技巧和注意事项,需要的朋友参考一下 上一篇博客我讲解了TagHelper的基本用法和自定义标签的生成,那么我就趁热打铁,和大家分享一下TagHelper的高级用法~~,大家也可以在我的博客下随意留言。 对于初步接触asp.net c

  • 问题内容: Asp.net Core中是否有Ajax帮助器标签文档的任何链接。我正在尝试使用asp.net核心学习ajax,但没有找到相关文档。在asp.net mvc中,我们使用@ Ajax.Form,然后使用AjaxOptions方法来处理ajax。经过数小时的搜索,我找到了此链接。 https://dotnetthoughts.net/jquery-unobtrusive-ajax-help

  • 问题内容: 我正在构建一个实现HTML5音频标签的音乐播放器Web应用程序,但是希望它在所有浏览器中看起来都一样-是否可以定义我自己的自定义CSS?如何? 问题答案: 当前尚无使用CSS设置HTML5 播放器样式的方法。相反,您可以不使用该属性,而使用Javascript实现自己的控件。如果您不想自己全部实现它们,建议您使用现有的主题化HTML5音频播放器

  • 主要内容:自定义标签的语法,简单示例,tld标签库描述文件,自定义标签属性,自定义标签的标签体自定义标签就是用户(开发者)自己定义的标签。自定义标签可以让 JSP 页面中不含有 Java 代码,只含有 HTML 代码和部分标签,就能实现业务逻辑的调用。 自定义标签的优点如下: 减少 JSP 页面对脚本的需求和依赖性 将 JSP 页面和业务逻辑分开,增加了程序的可维护性 可重复调用相同的业务逻辑,增加了程序的可重用性 使用自定义标签步骤如下: 自定义标签实现类 编写 tld 标签库描述文件