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 才能使其正常工作。
根据 documentation:
The
@addTagHelper
directive makes Tag Helpers available to the view. In this case, the view file isViews/_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 才能使其正常工作。