MVC 视图引擎的 Orchard 实现似乎没有像默认视图引擎那样在“共享”目录中找到视图或部分视图。
因此,如果在我的 cshtml 中我指的是部分视图,例如:
@Html.Partial("ViewFromShared")
这将在自定义 Orchard 模块中失败(但在正常的 ASP .NET 网站中工作)。
如何让 Orchard 视图引擎搜索共享目录?
另外,有什么方法可以让 Orchard 识别我的 ViewStart 页面?
谢谢你。
更新:
我可以按照以下确切步骤进行重现:
- 创建一个新的 ASP .NET MVC 4 项目 (MyApp)。
- 在 Shared 目录 (SharedFile.cshtml) 中添加一个新的 cshtml。
- 添加一个新的视图(Views/XYZ/MyView)和控制器(Controllers/XYZController)。
- 从新的控制器索引方法调用 View("MyView")。
- 将 Html.Partial("SharedFile") 添加到 MyView
- 将网站发布到 Orchard/Modules/MyApp。
- 添加一个 Module.txt(名称:MyApp)
添加 IRouteProvider 和以下 RouteDescriptor
new RouteDescriptor { Priority = 5, Route = new Route( "Modules/MyApp/{controller}/{action}", new RouteValueDictionary { {"area", "MyApp"} }, new RouteValueDictionary(), new RouteValueDictionary { {"area", "MyApp"} }, new MvcRouteHandler()) },
在浏览器中转到 myorchardsite/Modules/MyApp/XYZ/Index。
未找到 ViewFromShared 并引发异常:
预期结果:ViewFromShared 应呈现在页面上
- 如果我删除对@Html.Partial("ViewFromShared") _ViewStart.cshtml 和 _Layout.cshtml 的调用,并且没有 html/head/body 标记...只是 MyView.cshtml 的内容。
预期结果:我应该在页面中呈现 _ViewStart.cshtml 和 _Layout.cshtml。