Asp.Net 核心标签助手在子目录中不可用

Asp.Net Core Tag Helpers not available in Sub-Directory

根据 documentation:

The @addTagHelper directive makes Tag Helpers available to the view. In this case, the view file is Views/_ViewImports.cshtml, which by default is inherited by all view files in the Views folder and sub-directories; making Tag Helpers available.

所以我在 Views\_ViewImports.cshtml 中导入了 Tag Helpers:

@using MyProject
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

它们在 Views 文件夹中的文件上运行良好。

但是,在文件 Views/Home/Index.cshtml 中,我不支持 Tag Helpers,它们也没有正确呈现为链接。当我将 _ViewImports.cshtml 复制到文件夹 Views/Home 时,一切正常。

那我错过了什么?

更新

那我错过了什么?我的 _ViewImports.cshtml 被放在文件夹 Views/Shared 中(d'oh)。将其移动到 Views 后,TagHelpers 在任何地方都按预期工作。

我尝试了一个空白的新 ASP.NET 核心 1.0 项目并添加它在 Views/Home/Index.cshtml 视图下工作正常。这是你必须做的(确保它可用):

将以下包和工具部分添加到您的 project.json 文件中:

"dependencies": {
"Microsoft.NETCore.App": {
  "version": "1.0.0",
  "type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",

"Microsoft.AspNetCore.Razor.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
  }  
},

"tools": {
  "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
  "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},

使用您提到的内容在 Views 文件夹(您已有一个)下创建一个 _ViewImports.cshtml 文件。

注意:您可能需要重新启动 VS 才能使其正常工作。