c# - 找不到名为“PreviewCV”的视图组件
问题描述
我创建了一个视图组件。
public class PreviewCVComponent : ViewComponent
{
..
public async Task<IViewComponentResult> InvokeAsync(int id)
{
return View();
}
}
我在views/shared/components 中添加了一个名为PreviewCV 的文件夹。在该文件夹下,我添加了一个名为 Default.cshtml 的视图。
从另一个视图调用组件。它位于views/CV 下,名称为CV.cshtml。
我正在尝试使用
@await Component.InvokeAsync("PreviewCV", new { id = -1 })
这导致:
InvalidOperationException:找不到名为“PreviewCV”的视图组件。视图组件必须是公共的非抽象类,不包含任何泛型参数,并且使用“ViewComponentAttribute”装饰或具有以“ViewComponent”结尾的类名' 后缀。视图组件不得使用 'NonViewComponentAttribute' 修饰。
我正在使用.net 核心。
解决方案
--在模型文件夹中
文件名:TestViewComponent.cs
--在TestViewComponent类中
[ViewComponent(Name = "TestViewComponent")] //Solution
public class TestViewComponent: ViewComponent
{
public IViewComponentResult Invoke()
{
return View();
}
}
放入ViewComponent
后缀即可解决问题。
推荐阅读
- javascript - 在`package.json`命令中使用`prestart`而不是`&&`有什么好处
- r - 如何避免复杂的 for 循环?
- c# - 使用 NSubstitute 具有可变数量的 aguments 的模拟函数
- visual-studio-code - 如何在WorkspaceSymbol 上选择符号
- css - Css:如何在 CSS 中正确实现工具提示
- datatables - Angular Datatable Responsive Extention not working with *ngFor directive
- jquery - jQuery 没有在 jsFiddle 中执行
- c - 求左子-右兄弟树中某个高度的节点有多少?
- python-3.x - Euler Project 111 代码使代码越来越短
- vba - 修改笔记页面中所有文本框的位置(powerpoint)