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?
Swashbuckle.AspNet.Core:Swagger UI 显示空白页面 - 如何修复?