0

我有一个遵循以下结构的 ASP .NET MVC3(剃刀)站点:

Site1
    -Areas
        -Area1
            -Views
                -SomeFeature
                    -Index.cshtml --> sets the section 'pageScripts'
                -Shared
                    -_Layout.cshtml --> has Layout = ~/Views/Shared_Layout.cshtml, sets the section 'layoutScripts'

            -Viewstart.cshtml ---> has Layout = ~/Areas/Area1/Views/Shared/_Layout.cshtml

        -Area2
            -Views
                -Shared
    -Views
        -Shared
            -_Layout.cshtml ---> has optional sections pageScripts, layoutScripts

这是我的问题:

当我尝试访问 的等效控制器方法时~/Area1/SomeFeature/Index,我收到一条异常消息说

The following sections have been defined but have not been rendered for the layout page "~/Areas/Area1/Views/Shared/_Layout.cshtml": "pageScripts".

我将“pageScripts”部分定义为

@RenderSection("pageScripts", false) in ~/Views/Shared_Layout.cshtml

为什么我要这样做:

目前,我发现自己必须将 Area1(和 Area2)中每个视图中的 Layout 属性设置为~/Views/Shared/_Layout.cshtml

有谁知道我做错了什么?

- 感谢您的任何建议

4

1 回答 1

0

只是在黑暗中拍摄。

1.) 确保您使用的是_ViewStart,下划线是必需的;)。

2.) 确保 _ViewStart 位于 Area 的 Views 文件夹中,而不是 Area1 文件夹中。至少在你的描述中是这样的。

希望其中一个建议可以解决问题。我使用类似的技术并且工作得很好。

干杯,

涡流

于 2012-08-28T22:52:49.800 回答