asp.net-mvc – Sitecore视图渲染和控制器渲染助手

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – Sitecore视图渲染和控制器渲染助手前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用此方法的sitecore应用程序:
@Html.Sitecore().ViewRendering("Path to the View")
@Html.Sitecore().Controller("Controller Name","Controller Action")

即使我没有在Sitecore CMS中为该渲染创建项目,这也完美无缺

那么该方法与简单的ASP MVC方法有什么区别:

@Html.Partial("Path to the View")
@Html.Action("Controller Name","Controller Action")

两者相同与否?我觉得这里有点困惑

解决方法

@Html.Sitecore().ViewRendering("Path to the View")

将触发mvc.renderRendering管道.如果将视图添加到占位符,则视图将以几乎相同的方式呈现.与Html.Partial的区别在于处理视图的循环.如果您依赖于该管道中的某些内容(例如,如上所述的@Gatogordo),则渲染结果可能会有所不同. (或者如果你自己添加了一些处理器).
如果您希望通过占位符添加它们,则渲染是相同的,然后使用Html.Sitecore().ViewRendering

对于

@Html.Sitecore().Controller("Controller Name","Controller Action")

@Html.Action("Controller Name","Controller Action")

差异也在于它的执行生命周期. Sitecore是通过ControllerRunner执行的,它从SitecoreControllerFactory获取Controller并执行一些操作. ASP.Net MVC操作是通过HttpContext.Server.Execute执行的,并且实际上是相同的.但是看看实现,我可以假设一个不同之处在于路由.在使用ASP.Net MVC帮助程序的情况下,您的路由值可以带您到某个Sitecore项,而不是如果匹配则需要控制器操作. Sitecore助手将始终执行控制器.

如果您需要更多详细信息,可以在反射器中打开System.Web.Mvc.Html.ChildActionExtensions.Action和Sitecore.Mvc.Helpers.SitecoreHelper.Controller并逐步进行比较.

原文链接:https://www.f2er.com/aspnet/245771.html

猜你在找的asp.Net相关文章