子目录中没有Asp.Net核心标记助手

时间:2016-07-14 15:34:51

标签: asp.net razor asp.net-core tag-helpers

根据documentation

  

@addTagHelper指令使标记助手可用于视图。在这种情况下,视图文件是Views/_ViewImports.cshtml,默认情况下,它由Views文件夹和子目录中的所有视图文件继承;使标签助手可用。

所以我在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按照预期在任何地方工作。

1 个答案:

答案 0 :(得分:4)

我尝试了一个空白的新ASP.NET Core 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才能使其正常工作。