加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 20:38:10 所属栏目:asp.Net 来源:网络整理
导读:我有一个使用此方法的sitecore应用程序: @Html.Sitecore().ViewRendering("Path to the View")@Html.Sitecore().Controller("Controller Name","Controller Action") 即使我没有在Sitecore CMS中为该渲染创建项目,这也完美无缺 那么该方法与简单的ASP MVC方
我有一个使用此方法的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并逐步进行比较.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读