MVC View Engine的Orchard实现似乎没有在“Shared”目录中找到视图或部分视图,就像默认视图引擎一样。
所以,如果在我的cshtml中我引用了一个局部视图,如:
@Html.Partial("ViewFromShared")
这将在自定义Orchard模块中失败(但在普通的ASP .NET网站中工作)。
如何让Orchard视图引擎搜索共享目录?
另外,有没有办法让Orchard识别我的ViewStart页面?
谢谢。
更新:
我可以按照以下确切步骤重现:
添加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应在页面上呈现
预期结果:我应该在页面中呈现_ViewStart.cshtml和_Layout.cshtml。
答案 0 :(得分:1)
您可以使用@Display.ViewFromShared()
动态创建形状并使其渲染到位。如果需要,您甚至可以使用@Display.ViewFromShared(SomeProperty: val, SomeOtherProperty: 42)
等语法在形状上设置属性。有关动态创建形状的更多详细信息,请参阅https://weblogs.asp.net/bleroy/creating-shapes-on-the-fly。