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

asp.net – 导致StackOverflowException的Sitecore控制器渲染

发布时间:2020-12-16 06:39:17 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用Sitecore 8进行简单的控制器渲染,并且由于某种原因,它在主布局标记内的行上产生了一个StackOverflowException,其中包含对要呈现的占位符的引用.这似乎会使工作进程崩溃,但是你可以在调试过程时看到堆栈溢出: 这是我非常基本的控制器: 这是我
我正在尝试使用Sitecore 8进行简单的控制器渲染,并且由于某种原因,它在主布局标记内的行上产生了一个StackOverflowException,其中包含对要呈现的占位符的引用.这似乎会使工作进程崩溃,但是你可以在调试过程时看到堆栈溢出:

这是我非常基本的控制器:

这是我的控制器渲染定义:

复制说明:

>这是在一个vanilla Sitecore 8安装(通过SIM安装的版本150427)中发生的.
> MVC项目也是使用空的ASP.NET项目创建的,然后是MVC 5.1中的NuGetting.
> Web.config& Global已从wwwroot中的Sitecore站点根目录添加到项目中.

仅供参考 – 在进行视图渲染时,一切都非常好 – 它只是导致问题的控制器渲染

解决方法

所以问题实际上最终非常简单.

当视图作为局部视图(所有Sitecore渲染都是)时返回ViewResult,那么必须将标记中的layout属性设置为null:

@{
    Layout = null;
}

否则MVC将尝试将布局文件包装在其周围,当然这包含您的Sitecore占位符,这会导致无限循环并使用StackOverflowException崩溃工作进程.

因此,在Sitecore的上下文中,返回PartialViewResult或返回ViewResult,并将布局设置为null.

(编辑:李大同)

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

    推荐文章
      热点阅读