asp.net core mvc之 RAZOR共享指令和标签助手 TagHelpers

一、RAZOR共享指令

RAZOR共享指令:在视图中导入命名空间,执行依赖注入。
RAZOR共享指令是写在 Views目录下的 _ViewImports.cshtml 文件

支持指令如下:

@addTagHelper 增加标签助手
@removeTagHelper 移除标签助手
@tagHelperPrefix 标签助手前缀
@using 引入命名空间
@model 指定视图类型
@inherits 继承
@inject 依赖注入
 

_Viewlmports.cshtml可以存放在任意的文件夹中的。只不过它只能应用于它所在的文件夹以及它的子文件夹中的视图。不过根的Viewlmports.cshtml可能会被子的Viewlmports.cshtml覆盖

二、标签助手 TagHelpers

标签助手:使用服务器端代码在 Razor文件中创建和呈现HTML元素。

三、标签助手 和 Html 助手区别

四、自定义标签助手

示例: <a href="mailto:admin@aaa.com">站长邮箱</a>

1、解决方案右键,添加-》新建项目:MyTagHelper

2、添加 EmailTagHelper.cs 类

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

namespace MyTagHelper
{
    //实现 TagHelper 类
    public class EmailTagHelper:TagHelper
    {
        public string EmailTo { set; get; }
        public string Content { set; get; }
        //重写 Process 方法
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "a";//最后Email标签会替换成 a标签
            output.Attributes.SetAttribute("href", "mailto:"+EmailTo);
            output.Content.SetContent(Content);
        }
    }
}

 3、FirstCoreMvc 项目 添加 MyTagHelper 项目依赖

4、_ViewImports.cshtml 添加标签助手

 @addTagHelper MyTagHelper.Em*, MyTagHelper

5、页面调用

<email email-to="admin@aaa.com" content="站长邮箱"></email>

五、异步方式定义标签助手

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

namespace MyTagHelper
{
    //实现 TagHelper 类
    public class EmailTagHelper:TagHelper
    {
        public string EmailTo { set; get; }
        public string Content { set; get; }
        //重写 Process 方法
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            await base.ProcessAsync(context, output);
            output.TagName = "a";//最后Email标签会替换成 a标签
            output.Attributes.SetAttribute("href", "mailto:"+EmailTo);
            output.Content.SetContent(Content);
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/142457.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

javaSE学习笔记(八)-多线程

目录 九、多线程 1.概述 线程 多线程并行和并发的区别 Java程序运行原理 多线程为什么快 如何设置线程数比较合理 CPU密集型程序 I/O密集型程序 注意 线程的五种状态 新建状态&#xff08;new&#xff09; 就绪&#xff08;runnable&#xff09; 运行状态&#x…

ubutun上编译出现undefined reference to symbol ‘dladdr@@GLIBC_2.2.5‘的错误

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> ubutun上编译一段C程序&#xff0c;出现错误&#xff1a; /usr/bin/ld: /tmp/ccghh3FJ.o: undefined reference to symbol ‘dladdrGLIBC_2.2.5’ //lib/…

记录一个错误

通过Resource注解&#xff0c;将IStateHandler接口的实现类 StateHandlerImpl注入进来 Resource private IStateHandler stateHandler;Resource注解默认按照名称进行装配&#xff0c;这里抛出异常是因为IStateHandler和StateHandlerImpl都被 Spring 容器管理&#xff0c;在进行…

css渐变背景,linear-gradient()线性渐变和radial-gradient()径向渐变

嗨&#xff0c;大家好&#xff0c;我是爱搞知识的咸虾米。 许多APP、小程序、网站等都喜欢采用渐变色背景&#xff0c;这样做不但可以增加设计感&#xff0c;而且能提升品牌辨识度。 所以&#xff0c;今天使用css的线性渐变和径向渐变&#xff0c;给大家将这几种不同类型的渐变…

【mybatisPlus简化开发过程】

mybatisPlus简化开发过程 1.入门案例1.1 SpringBoot整合Mybatis开发过程(复习) 2.Mp简介3. 增删改查4. 分页插件5. 多条件查询(lambda版本)6 条件查询的null值处理7. Lambda查询投影8.条件查询8.1 范围查询(>、、between)8.2 模糊查询 (like)8.3 空判定(null)8.4 包含性判定…

重复性工作自动化解决方案——影刀

以前&#xff0c;影刀是一个邂逅的初见小工具&#xff0c;新奇在里头&#xff0c;踌躇在外头&#xff1b; 现在&#xff0c;影刀是一个稳定的职场贾维斯&#xff0c;高效在里头&#xff0c;悠闲在外头&#xff1b; 以后&#xff0c;影刀是一个潜力的知己老司机&#xff0c;有序…

【网络奇缘】我和英特网再续前缘

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 计算机网络的概念 计算机网络的功能 ⭐1.数据通信 ⭐2.资源共享 ⭐3.分布式处理 ⭐4.提高可靠性 ⭐…

如何使用`open-uri`模块

首先&#xff0c;我们需要使用open-uri模块来打开网页&#xff0c;并使用Nokogiri模块来解析网页内容。然后&#xff0c;我们可以使用Nokogiri的css方法来选择我们想要的元素&#xff0c;例如标题&#xff0c;作者&#xff0c;内容等。最后&#xff0c;我们可以使用open-uri模块…

算法的入门基础了解

目录 算法的特征 如何设计算法&#xff1f; 伪代码 “算法”一词最早出现在《周髀算经》这本书中&#xff0c;对应的英文单词是“algorism”&#xff08;由 9 世纪的波斯数学家阿尔霍瓦里兹米提出&#xff09;&#xff0c;代指阿拉伯数字的运算规则。随着计算机的快速发展&a…

小白看CLIP代码解析

CLIP代码解析 CLIP演示代码&#xff08;以cifar100举例&#xff09;补充11. 为什么选用100*image_feature&#xff1f;2. 为什么使用L2规范点积&#xff0c;而不直接使用点积&#xff1f; cifar100的所有类别model.encode_image >> VisionTransformer补充21. 为什么加入c…

GoldWave v6.78 绿色免费便携版功能介绍及使用说明

GoldWave v6.78 绿色免费便携版是一款集声音编辑、播放、录制与转换为一体的音频编辑工具&#xff0c;还可以对音频内容进行转换格式等处理。该软件支持许多格式的音频文件&#xff0c;包括WAV, OGG, VOC, IFF, AIF, AFC, AU, SND, MP3,MAT, DWD, SMP, VOX, SDS, AVI, MOV等音频…

程序运行前后内存分区存储

程序运行前是源码 在程序运行后&#xff0c;生成了exe可执行程序 分为代码区和全局区 代码区&#xff1a; 存放CPU执行的机器指令代码区是共享的&#xff0c;共享的目的是对于频繁被执行的程序&#xff0c;只需要在内存中有一份代码就可以了代码区是只读的&#xff0c;其只读…

淘宝京东优惠券信息API接口系列

获取淘宝优惠券信息接口需要使用淘宝开放平台提供的API接口。以下是获取优惠券信息的步骤&#xff1a; 进入淘宝开放平台&#xff0c;注册并登录账号。在开放平台页面中&#xff0c;找到“优惠券”或“营销工具”等相关的API接口&#xff0c;根据需要进行选择。根据接口文档&a…

C语言——函数

导读 &#xff1a; 这篇文章主要讲解一下C语言函数的一些基本知识。 前言&#xff1a;函数的概念 C语言中的函数又常常被称为子程序&#xff0c;是用来完成某项特定的工作的一段代码。就像我们生活中的模块化建造技术&#xff0c;类比模块化建房子的过程&#xff1a;整个程序…

快速掌握队列的基础知识

目录 队列的特点基于链表实现队列用栈实现队列用队列实现栈 队列是一种线性数据结构&#xff0c;它只允许在一边进行插入操作&#xff08;队尾&#xff09;&#xff0c;另一边进行删除操作&#xff08;队头&#xff09;。插入操作称为入队&#xff0c;删除操作称为出队。队列遵…

数据分类分级方法及典型应用场景

1 2021-09-29 来源&#xff1a;数据学堂 [打印本稿][字号 大 中小] 《数据安全法》的第二十一条明确规定了由国家建立数据分类分级保护制度&#xff0c;根据数据在经济社会发展中的重要程度&#xff0c;以及一旦遭到篡改、破坏、泄露或者非法获取、非法利用&#xff0c;对国…

ISP 处理流程

#灵感# 摆烂时间太长了&#xff0c;感觉知识忘光光了。重新学习&#xff0c;常学常新。 因为公司文档都不让摘抄、截取&#xff0c;所以内容是工作的一些自己记录和网络内容&#xff0c;不对的欢迎批评指正。 1、ISP概述 ISP是Image Signal Processor 的简称&#xff0c;也就…

Python---综合案例:通讯录管理系统---涉及点:列表、字典、死循环

需求&#xff1a; 开个一个通讯录的管理系统&#xff0c;主要用于实现存储班级中同学的信息&#xff08;姓名、年龄、电话&#xff09; 涉及点&#xff1a;列表、字典、死循环 相关链接&#xff1a;Python--列表及其应用场景---增、删、改、查。-CSDN博客 Python---字典---…

回顾 — SFA:简化快速 AlexNet(模糊分类)

模糊图像的样本 一、说明 在本文回顾了基于深度学习的模糊图像分类&#xff08;SFA&#xff09;。在本文中&#xff1a;Simplified-Fast-AlexNet (SFA)旨在对图像是否因散焦模糊、高斯模糊、雾霾模糊或运动模糊而模糊进行分类。 二、大纲 图像模糊建模简要概述简化快速 AlexNet…

Model Inspector—软件模型静态规范检查工具

产品概述 Model Inspector&#xff08;MI&#xff09;原厂商是韩国Suresoft&#xff0c;是KOLAS国际公认测评机构&#xff0c;旨在提升安全关键领域软件可信度。MI用于开发过程中模型的静态检查&#xff0c;包括规范检查、复杂度度量&#xff0c;提供MAAB、HIS、CG、MISRA_AC_…