ASP.NET Core组件视图中Tag Helper未渲染问题求助
解决ViewComponent中Tag Helper不渲染的问题
嘿,我之前也碰到过一模一样的情况!问题根源在于ViewComponent的视图并不会自动继承根Views目录下的_ViewImports.cshtml配置——因为组件视图所在的Views/Shared/Components/MyViewComponent是独立的子目录结构,Razor默认不会把根目录的导入规则递归应用到这里。
给你两种解决方案,推荐第一种更规范的方式:
1. 为组件视图目录添加专属的_ViewImports.cshtml
在Views/Shared/Components/MyViewComponent文件夹下新建一个_ViewImports.cshtml文件,把根目录_ViewImports.cshtml里的内容复制进去即可:
@using SportWinkel @addTagHelper SportWinkel.Infrastructure.*, SportWinkel @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
这样这个组件下的所有视图都会自动应用这些导入规则,不用再在每个视图顶部重复写代码了。
2. 临时方案:在单个组件视图顶部手动添加导入代码
如果只是临时测试或者只有一个组件视图,也可以像你现在做的那样,在Default.cshtml顶部直接添加这些导入语句。但这种方式不够优雅,要是后续新增组件视图会出现大量重复代码,不推荐长期使用。
说白了就是ViewComponent的视图有自己的作用域,根目录的_ViewImports管不到它,给它自己加一份配置就搞定啦!
内容的提问来源于stack exchange,提问作者Sven Nijs
相关产品推荐
相关产品推荐

