【问题标题】:Asp.Net Core Tag Helpers not available in Sub-DirectoryAsp.Net Core Tag Helpers 在子目录中不可用
【发布时间】:2016-11-17 14:54:22
【问题描述】:

根据documentation

@addTagHelper 指令使标签助手可用于视图。本例中视图文件为Views/_ViewImports.cshtml,默认为Views文件夹及子目录下的所有视图文件继承;使标签助手可用。

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

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

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

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

那么我错过了什么?

更新

那么我错过了什么?我的_ViewImports.cshtml 被放入文件夹Views/Shared(d'oh)。将其移至 Views 后,TagHelpers 随处可按预期工作。

【问题讨论】:

  • 它对我有用。如果您已经创建了自己的 taghelper,那么您必须在 _ViewImports.cshtml 文件中为其创建条目。
  • 我想使用微软定义的助手,即asp-controllerasp-action

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


【解决方案1】:

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

【讨论】:

  • 是的,当我将文件放在正确的文件夹中时它对我有用(请参阅我的问题的更新)。谢谢!
猜你喜欢
  • 2020-10-09
  • 2015-05-14
  • 2017-04-20
  • 2019-02-25
  • 2018-05-21
  • 2020-07-05
  • 1970-01-01
  • 2016-05-02
  • 2016-11-05
相关资源
最近更新 更多