【发布时间】:2021-07-29 23:04:56
【问题描述】:
我有一个视图需要根据组件视图名称动态加载不同的组件视图。我正在使用 C# 中的一个函数来实现这一点:
public ViewComponentResult GetComponentView(string componentName, int id)
{
return ViewComponent(componentName, new { id = id });
}
这是在控制器 CT40 中。所以文件结构是:
/控制器/CT40/CT40控制器
/Views/CT40/Components/Maintenance/Default.cshtml /Views/CT40/Components/Maintenance/MaintenanceViewComponents.cs
在 MaintenanceViewComponents.cs 我有:
[ViewComponent(Name = "Maintenance")]
当我以“维护”作为组件名称调用 GetComponentView 函数时,它可以工作。
但我想将 GetComponentView 函数移动到 HomeController。当我这样做时,它会返回
“System.InvalidOperationException:视图'组件/维护/默认'”
我已经尝试了所有我能想到的方法,同样的事情:
/CT04000/维护
/CT04000/组件/维护
/CT04000/Components/Maintenance/Default.cshtml
Views/CT04000/Components/Maintenance/Default.cshtml
每次都出现同样的错误。
知道我需要输入什么路径才能让 Homecontroller 查看: /Views/CT40/组件/维护?
【问题讨论】:
标签: c# asp.net-core-viewcomponent