【问题标题】:Taghelper: Cannot resolve TagHelper containing assemblyTaghelper:无法解析包含程序集的 TagHelper
【发布时间】:2015-07-07 01:46:57
【问题描述】:

我无法在我的 ASP.NET v5 项目中使用自定义 TagHelper。自定义 TagHelper 位于 Web 项目本身中。我尝试从 CodeProject 和 this tutorial 遵循这个示例 this sample

当我尝试使用不带addTagHelper 的标签时: 没有任何东西被转换,标签助手中没有断点。

当我尝试 @addTagHelper "*, MyWebApplication" 到 Viewcomponent 时,错误是 MyWebApplication'. Error: Could not load file or assembly 'MyWebApplication'

我错过了什么?

工具版本:

Microsoft Visual Studio Enterprise 2015 RC
Version 14.0.22823.1 D14REL
Microsoft .NET Framework Version 4.6.00057
Microsoft.AspNet.Mvc 6.0.0-beta4

【问题讨论】:

  • 能否将帮助程序添加到另一个程序集,看看是否能解决问题?
  • 这是我的下一步,但我解决了 - 请参阅我的答案
  • 参见 Authoring taghelpers bit.ly/1Mqd0th 解释了这一点。

标签: asp.net-mvc tag-helpers


【解决方案1】:

addTagHelper 的广告签名是

@addTagHelper "className/Filter", "assemblyName"

行为实际上似乎是(至少对于同一个 Web 项目中的助手而言)

addTagHelper "className/Filter", "folderName"

因为至少进入Beta6,程序集名称是文件夹名称,忽略项目属性中的属性。

这是sample working demo

  1. 按 F5,查看猫。
  2. 编辑项目属性以更改程序集名称。
  3. 按 F5,查看猫。 这应该行不通?!
  4. 关闭解决方案,重命名磁盘目录TagHelperDemo -> TagHelperFolderDemo
  5. 在文件夹名称用于addTagHelper 指令之前,观察页面失败

PS:@addTagHelper 是必需的,即使 TagHelper 在同一个项目中。当标签被TagHelper 定位时,VS2015 会将标签重新着色为紫色。

【讨论】:

  • 这仍然是 Core 1.1 中的问题。您需要指定文件夹,而不是程序集。例如,如果项目位于“proj-name/src/proj-name.csproj”中,则正确的指令是 @addTagHelper "*, proj-name",无论您的命名空间如何。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-24
  • 2016-08-19
  • 2013-04-12
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多