Razor RenderSection不起作用

时间:2013-03-01 14:53:43

标签: razor

我是一名经验丰富的网络开发人员,他一直在做项目管理而不是开发一年,所以我试图重新开始学习Razor。到目前为止,这是一个令人沮丧的失败。

我在VS2012中创建了一个新的空Razor网站,并创建了以下文件:

_MainLayout.cshtml:

<!DOCTYPE html>
<html>
    <head>
        <title>Razor Test</title>
    </head>
    <body>
        <div>@RenderBody()</div>
        <div>@RenderSection("testSection")</div>
    </body>
</html>

ContentPage1.cshtml:

@{
    Layout = "_MainLayout.cshtml";
}

<div>This is the content on the Razor Test Page.</div>

和TestSection.cshtml:

@{
    Layout = "_MainLayout.cshtml"; 
}

@section TestSection {
    <h1>this is test section</h1>
}

当我尝试运行此页面时,出现以下错误:

  

未定义的部分:“TestSection”。

想一想发生了什么?这被认为是我可以得到它的荒谬简单。显然,它太简单了。

1 个答案:

答案 0 :(得分:1)

Sections应该放在您的页面内,而不是单独的cshtml

ContentPage1.cshtml:

@{
    Layout = "_MainLayout.cshtml";
}
@section testSection {
    <h1>this is test section</h1>
}

<div>This is the content on the Razor Test Page.</div>

或者,如果您希望单独的cshtml用于“类似”部分,请使用部分视图。