7

我正在将 WebForms 应用程序转换为 Razor 并且一切正常,除非我尝试使用Html.RenderAction. 每当我调用它时,我都会得到一个StackOverflowException. 有没有人知道可能导致这种情况的原因?

我的操作模板如下所示:

@model dynamic   

should be rendering this

在我的 _Layout.cshtml 文件中,我呈现如下操作:

@{Html.RenderAction("MyPartialAction");}

我的_ViewStart.cshtml文件如下所示:

@{
    this.Layout = "~/Views/Shared/_Layout.cshtml";
}
4

1 回答 1

19

问题是您的操作模板没有定义要使用的布局。因此,它会自动获取 _ViewStart.cshtml 文件中指定的那个。这实际上会导致 _Layout.cshtml 文件无限地嵌套在其自身中。因此StackOverflowException. 解决方案很简单。将操作模板中的布局设置为null

@model dynamic
@{
   Layout = null;
}
should be rendering this

现在模板不会要求嵌入到布局文件中,一切正常。

于 2013-01-30T12:02:40.860 回答