我想使用通用剃刀辅助函数Html.Partial来渲染其中包含常见html的视图。
例如,我在Sitecore Payment Information.cshtml和Agent Payment Information.cshtml中设置了两个视图。这些是使用Sitecore渲染引擎呈现的。这两个视图中都有非常相似的html,我想把它放在未在Sitecore中设置的剃刀视图中,并使用@ Html.Partial调用它们作为@ Html.Sitecore()的参与。渲染()作为后者迫使我在Sitecore中设置视图和模型,我不确定是否有必要。
我的问题是,Sitecore在幕后做了什么,这使得有必要使用@ Html.Sitecore()。渲染()辅助方法而不是@Html.Partial()辅助方法?一切似乎都运行良好,我相信整个视图应该被缓存,因为@ Html.Partial调用嵌套在付款信息视图或Sitecore中设置的代理付款信息视图中。
提前致谢。
答案 0 :(得分:1)
我让Html.Partial使用Glass for ORM在MVC解决方案中工作。我使用了两种方法,一种是传递给partial的假定模型与父渲染相同,另一种是我们动态创建模型。
Assumes parent rendering model is passed:
@Html.Partial("~/Views/Components/MyPartialView.cshtml")
Instantiates a new model that is passed in:
@Html.Partial("~/Views/Components/Navigation/SecondaryNavigationRendering.cshtml", new SecondaryNavigation())
父视图需要在Sitecore中具有映射模型。辅助视图在Sitecore中没有映射模型,但是被键入以接收传递的模型(因此在我的第一个示例中,这将是我的IBasePage模型,在我的第二个示例中,它将是我的SecondaryNavigation模型)。
希望这有帮助。