【发布时间】:2015-12-23 15:10:26
【问题描述】:
我有一个 ViewComponent 存储在一个名为“Dashboard”的区域中,但现在我想在另一个名为“Appplications”的区域中使用这个 ViewComponent。是的,我可以将它添加到根视图/共享文件夹,但我正在努力通过强大的区域使用来制作一个非常模块化的应用程序。
ASP.NET 5 RC1 MVC 6 似乎不支持对其他组件的跨区域引用。
如何添加其他视图位置?我需要补充:
/Areas/Dashboard/Views/Shared/Components/DashboardMenu/Default.cshtml
作为视图渲染器的搜索位置
InvalidOperationException: The view 'Components/DashboardMenu/Default' was not found. The following locations were searched:
/Areas/Applications/Views/Application/Components/DashboardMenu/Default.cshtml
/Areas/Applications/Views/Shared/Components/DashboardMenu/Default.cshtml
/Views/Shared/Components/DashboardMenu/Default.cshtml.
【问题讨论】:
-
如果它是一个通用组件并且在您的应用程序中被多个地方使用,您不应该将它移动到根目录下的 Shared 文件夹吗?
-
那不是“过河”吗?我的意思是......区域旨在隔离您的应用程序的一部分。你为什么要“分离”它们?
-
加上...@Shyju 所说的。
-
我有一个区域专门用于提供这些常见的基本和一致的依赖项。跨区域依赖性将保持在最低限度,但源将始终从该单个区域提供。除了这个单一区域之外,提供的其他区域将没有交叉依赖关系。一个区域用于模板和样式,另一个区域用于核心内容,然后其他区域由这两者提供,这些区域可能会被交换以提供相同的功能。就像把汽车的方向盘换成粉红色的毛皮轮子一样 :-) 我的其他领域将是安全、应用程序、CMS 等。
-
我的目标是坚持你们都建议的精神,除了这个可能是作为基础的两个领域。
标签: c# asp.net-core asp.net-core-viewcomponent