ASPNET CORE ViewComponent 的 TagHelper 不起作用

Posted

技术标签:

【中文标题】ASPNET CORE ViewComponent 的 TagHelper 不起作用【英文标题】:TagHelper for ASPNET CORE ViewComponent not working 【发布时间】:2017-10-03 15:30:17 【问题描述】:

我正在掌握 ASPNET CORE [版本 1.1,使用 VS2017 社区,版本 15.1 (26403.3)]我创建了一个名为 UserDetails 的工作 ViewComponent(以下简称):

namespace AdminConsole.ViewComponents

[ViewComponent(Name = "UserDetails")]
public class UserDetailsViewComponent : ViewComponent
 ...does stuff... 

我可以通过使用在视图中成功调用它

@await Component.InvokeAsync("UserDetails")

我宁愿使用 TagHelper 来调用它,但它只是没有发生。我浏览了 SO 和其他有用的页面,虽然其他人似乎可以使用它,但我做不到。

我在 _ViewImports.cshtml<vc:user-details></vc:user-details> 中添加了行 @addTagHelper "*, AdminConsole" 在我想要渲染 VC 的视图中,但它没有渲染;我没有收到错误,只是没有渲染。

如果我将 TagHelper 声明更改为 @addTagHelper *, AdminConsole(没有语音标记),它也不会呈现或出错。

如果我尝试上述两种组合并尝试<vc:UserDetails></vc:UserDetails>,即没有kebab-case,它不会呈现或错误。

我的_ViewImports.cshtml如下

@using AdminConsole
@using AdminConsole.Models
@using AdminConsole.Models.AccountViewModels
@using AdminConsole.Models.ManageViewModels
@using Microsoft.AspNetCore.Identity
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@inject Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration TelemetryConfiguration
@addTagHelper "*, AdminConsole"

@addTagHelper 声明 (AdminConsole.ViewComponents) 中使用 VC 的完整命名空间会产生 cannot resolve TagHelper 错误。

我想我已经尝试了所有排列方式,来自官方和社区来源的文档仅表明我尝试过的内容(并且有所不同!)。如果有人能帮助解释一下,我将不胜感激。

【问题讨论】:

我也遇到这种问题,有什么解决办法吗? 嗨,Riza,我在 ASP.NET 论坛上问了同样的问题……遗憾的是没有答案。你能让VC使用@await Component.InvokeAsync("ComponentName")方法渲染吗?这对我有用,但 TagHelper 不起作用。 是的,@await 组件有效,但 TagHelper 无效。我仍在努力寻找解决方案,如果我找到了,我会发布答案 是否有任何 dotnet 框架更新?不幸的是,我正在使用 VSCode 我也遇到了这个问题,我一生都无法弄清楚为什么它不起作用。我什至从 Microsoft 文档中构建了一个代码示例,它仍然只有在我使用 razor 语法时才有效。 【参考方案1】:

安装.NET Core 1.1.2 runtime (Current LTS) 解决了我的问题。我想我们应该同时安装 SDK 和 LTS 运行时。

【讨论】:

以上是关于ASPNET CORE ViewComponent 的 TagHelper 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Asp.net Core 3.1 中使用 Ajax 刷新或重新加载 ViewComponent?

[Asp.Net Core]视图组件扩展定制

[Asp.Net Core]视图组件扩展定制

Swashbuckle.AspNet.Core:Swagger UI 显示空白页面 - 如何修复?

Microsoft.AspNet.WebApi.Core 和过时的库

2018-10-07