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);
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

es性能强悍的推演过程

前言 es底层复用的Lucene的能力&#xff0c;Lucene在以前的文章中有所讲解&#xff0c;感兴趣可查看 https://blog.csdn.net/u013978512/article/details/125474873?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169771769916777224433628%2522%252C%2522scm%2522…

模拟接口数据之使用Fetch方法实现

文章目录 前言一、package.json配置mock执行脚本二、封装接口&#xff0c;区分走ajax还是fetch三、创建mock目录&#xff0c;及相关接口文件四、定义接口五、使用mock数据使用模拟数据优化fetch返回数据 六、不使用模拟数据七、对比其他需要使用依赖相关配置如有启发&#xff0…

Linux 性能调优之硬件资源监控

写在前面 考试整理相关笔记博文内容涉及 Linux 硬件资源监控常见的命名介绍&#xff0c;涉及硬件基本信息查看查看硬件错误信息查看虚拟环境和云环境资源理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#x…

Linux常用命令——bzip2命令

在线Linux命令查询工具 bzip2 将文件压缩成bz2格式 补充说明 bzip2命令用于创建和管理&#xff08;包括解压缩&#xff09;“.bz2”格式的压缩包。我们遇见Linux压缩打包方法有很多种&#xff0c;以下讲解了Linux压缩打包方法中的Linux bzip2命令的多种范例供大家查看&…

Mac 本地部署thinkphp8【部署环境以及下载thinkphp】

PHP的安装以及环境变量配置 1 PHP安装&#xff1a;在终端输入brew install php 这里是PHP下载的最新的 如果提示‘brew’找不到&#xff0c;自己搜索安装吧&#xff0c; 不是特别难 2 环境变量配置 终端输入vim ~/.bash_profile 输入export PATH"/usr/local/Cellar/php/8.…

C++阶段复习‘‘‘‘总结?【4w字。。。】

文章目录 前言类和对象C类定义和对象定义类成员函数C 类访问修饰符公有&#xff08;public&#xff09;成员私有&#xff08;private&#xff09;成员受保护&#xff08;protected&#xff09;成员 继承中的特点类的构造函数和析构函数 友元函数内联函数this指针指向类的指针类…

集成Line、Facebook、Twitter、Google、微信、QQ、微博、支付宝的三方登录sdk

下载地址&#xff1a; https://githubfast.com/anerg2046/sns_auth 安装方式建议使用composer进行安装 如果linux执行composer不方便的话&#xff0c;可以在本地新建个文件夹&#xff0c;然后执行上面的composer命令&#xff0c;把代码sdk和composer文件一起上传到项目适当位…

Spring事务之AOP导致事务失效问题

情况说明 首先开启了AOP&#xff0c;并且同时开启了事务。下面这个TransactionAspect就是一个简单的AOP切面&#xff0c;有一个Around通知。 Aspect Component public class TransactionAspect {Pointcut("execution(* com.qhyu.cloud.datasource.service.TransactionSe…

【Android】画面卡顿优化列表流畅度四之Glide几个常用参数设置

好像是一年前快两年了&#xff0c;笔者解析过glide的源码&#xff0c;也是因为觉得自己熟悉一些&#xff0c;也就没太关注过项目里glide的具体使用对当前业务的影响&#xff1b;主要是自负&#xff0c;还有就是真没有碰到过这样的数据加载情况。暴露了经验还是不太足够 有兴趣的…

Vue知识点总结

路由 使用 参数传递的两种方式 路由的params传参 路由的query传参 组件 概念 局部功能代码&#xff08;html、css js&#xff09;和资源(mp3 mp4 ttf .zip)的集合 非单文件组件 一个文件对应多个组件&#xff0c;以html结尾 使用 <xuexiao>即可使用 注意&#xf…

nacos适配达梦数据库

一、下载源码 源码我直接下载gitee上nacos2.2.3的&#xff0c;具体链接&#xff1a;https://gitee.com/mirrors/Nacos/tree/2.2.3&#xff0c;具体如下图&#xff1a; 二、集成达梦数据库驱动 解压源码包&#xff0c;用idea打开源码&#xff0c;等idea和maven编译完成&#xff…

STM32--时钟树

一、什么是时钟&#xff1f; 时钟是单片机的脉搏&#xff0c;是系统工作的同步节拍。单片机上至CPU&#xff0c;下至总线外设&#xff0c;它们工作时序的配合&#xff0c;都需要一个同步的时钟信号来统一指挥。时钟信号是周期性的脉冲信号。 二、什么是时钟树&#xff1f; S…