首页 > 解决方案 > 我们可以在 razor 页面中使用 addTagHelper 吗?

问题描述

在 ASP.NET CORE 3.1 MVC 项目中,我在

Views > _ViewImports.cshtml

标记现在在该文件夹中的所有视图中都可以正常工作。

我还搭建了AspNetCore.Identity页面,所以在我的项目中我也有

Areas > Identity > Pages > _ViewImports.cshtml

然后是一大堆 Razor 页面

Areas > Identity > Pages > Account > ...

现在,无论我添加TagHelper_ViewImports.cshtml什至直接添加到任何 Razor 页面,标记都不起作用。

TagHelpersRazor中的页面是否Areas无法正常工作?我可以以这种方式添加TagHelpers.cshtml页面还是仅适用于.cshtmlViews 文件夹中的页面?

标签: c#asp.netasp.net-mvcasp.net-corerazor

解决方案


如果addTagHelper在页面中添加指令,则Areas > Identity > Pages > _ViewImports.cshtml只有身份剃须刀页面可以使用自定义标签助手。Views 文件夹中的视图页面不能使用自定义标签助手。

要使Views文件夹的页面使用自定义标签助手,我们应该在页面中添加addTagHelper指令。Views > _ViewImports.cshtml

要使 Views 文件夹的页面和 Identity razor 页面使用自定义标签助手,我们需要在和中添加addTagHelper指令。Areas > Identity > Pages > _ViewImports.cshtmlViews > _ViewImports.cshtml

此外,正如 AntonKovachev 所说,当我们添加addTagHelper指令时,我们应该使用项目名称。例如,我的项目名称是“netcore3”,我在 Taghelpers 文件夹中创建了一个 MyCustomTagHelper,那么,addTagHelper指令应该是这样的(您可以将项目名称或文件路径更改为您的):

@addTagHelper *, netcore3

或者

@addTagHelper netcore3.TagHelpers.MyCustomTagHelper, netcore3

检查以下屏幕截图(登录和注册页面是 Identity razor 页面,Index 页面是 View 页面。):

在此处输入图像描述


推荐阅读