已定义以下部分,但尚未为布局页面呈现

Sae*_*ati 44 exception asp.net-mvc-3

这是一个ASP.NET MVC 3异常消息.它说的是什么?我该怎么办?

好的,我有这个代码:

@{
     Layout = "~/_Layout.cshtml";
     Page.Title = "Home";            
}

@section meta{
    <meta name="keywords" content="" />
    <meta name="description" content="" />
}

<h2>Html Content Here</h2>

@section footer {
    <script src="http://code.jquery.com/jquery-latest.min.js" charset="utf-8"></script>
    <script type="text/javascript">
        $(document).ready(function() {
    });    
    </script> 
}
Run Code Online (Sandbox Code Playgroud)

Len*_*ncy 78

您的布局页面实际上并不渲染部分footermeta

在_Layout.cshtml中,放入@RenderSection("meta")要呈现元区域的位置.

您还@RenderSection("meta", false)可以指示该部分是可选的.


Ste*_*gan 13

该错误消息表示您_Layout.cshtml不包含视图中s的@RenderSection语句@section.

检查您的布局并告诉我们.

有关更多信息,请参阅此页面.


Jai*_*der 10

我遇到了类似的问题,其中布局模板确实具有@RenderSection(...)但在内部if-else statement.因此,当页面执行不包含@RenderSection它的语句时,它将抛出该异常.如果是这种情况,那么您的解决方案会更复杂一点:

  • 确保你没有@RenderSection陈述或
  • @RenderSection在if-else语句中重复,或者
  • 使用不同的部分视图,或
  • 重新设计布局.

那可能是你的主要问题!

  • 我认为这是一个.net错误 - 一个非常讨厌的人... thx,提到这解决了我的问题. (2认同)