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().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并逐步进行比较. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |