如何在Donet Core 2.1中创建自定义taghelper

时间:2018-09-27 00:23:47

标签: razor asp.net-core-2.1

我正在dot net core2.1上创建一个MVC应用程序。我正在尝试为razor创建一个html和ajax taghelper.i正在创建图像actionlink.i之前我已经在.net MVC 5上使用扩展方法进行了此操作,但是在点网核心中我无法理解。任何人都可以帮助实现与我只是初学者一样的功能。

1 个答案:

答案 0 :(得分:1)

首先,我建议您看看the official document如何创建TagHelper。如果您仍然感到困惑,请放心,我们将为您提供更简单的解释。

TagHelper只不过是一段有助于在Razor中呈现HTML元素的服务器端代码。使TagHelper更加强大的原因是我们可以向其中注入配置和服务。

让我们以图像为例。假设我们想要一个魔术<magic-image>,它将呈现为

<img src="localserver-url" />

开发时,将呈现为

<img src="cdn-url" />
在生产环境中

。输入为src,输出为<img src=''>

您只需要记住4条规则:

  1. 我们可以使用[HtmlTargetElement("magic-image")]告诉编译器它将用作<magic-image >
  2. 我们可以定义多达我们自己的属性以接收用户输入。例如,我们在此处使用Src来保存用户<magic-image src='xxx'>的相对网址
  3. 我们可以将DI与TagHelper一起使用。换句话说,我们可以注入服务和配置/选项。
  4. Process()方法用于将输入映射到最终输出。就像过去使用JavaScript处理DOM的方式一样,我们可以设置output.TagName,innerHtml。

由于我们需要根据当前环境计算最终的src,因此我们创建一个注入了TagHelper的{​​{1}}:

Configuration