Razor .NET MVC 4.5-未定义节

Razor .NET MVC 4.5-未定义节,razor,Razor,我正在呈现一个Razor模板,并希望定义部分,我能够在所有包含的页面(即javascripts)中添加内容。 然而,到目前为止,所有部分都是空的。如果我将它们设置为required:true,则会得到一个错误,即该节尚未定义。为了测试这一点,我在主模板文件中添加了以下代码: @section foo { <p>Hello</p> } @RenderSection("foo", true) @section foo{ 你好 } @渲染部分(“foo”,真)

我正在呈现一个Razor模板,并希望定义部分,我能够在所有包含的页面(即javascripts)中添加内容。 然而,到目前为止,所有部分都是空的。如果我将它们设置为required:true,则会得到一个错误,即该节尚未定义。为了测试这一点,我在主模板文件中添加了以下代码:

@section foo {
    <p>Hello</p>    
}
@RenderSection("foo", true)
@section foo{
你好

} @渲染部分(“foo”,真)
这些线正好在彼此的上面。模板呈现失败,消息
部分未定义:“foo”。


考虑到该部分已明确定义,我是否可能在项目配置或控制器中遗漏了支持该部分的内容?模板中的所有其他@命令(如
@RenderBody()
)似乎都可以正常工作,因此对Razor命令的一些支持显然是存在的。

看起来您正在定义分区并尝试从共享布局渲染它。据我所知,您需要在共享布局中调用RenderSection,然后在使用该共享布局的视图中定义该部分

Scott Gu的此链接是以下章节的一个很好的参考:


您可以在Scott Guthri的这篇博文中找到答案。实际上,我首先尝试了这一点——在sidebar.html中定义节的内容,然后在main.html中包含sidebar.html并在main.html中呈现节。相同的结果-上面的代码只是为了澄清。您能提供视图和共享布局标记的完整列表吗?我发现了错误-您不能在RenderPage()呈现的模板中定义节。显然,节实际上只能从控制器传递的实际视图模板中定义。这是否意味着如果在_布局文件中呈现节,则其他每个视图文件都必须在其中定义该节?