.NET MVC 4.5 - 未定义的部分

doq*_*que 4 razor

我正在渲染一个Razor模板,并且想要定义部分,我可以在所有包含的页面中添加内容(即javascripts).但是,到目前为止,所有部分都是空的.如果我将它们设置为required:true,我会收到该部分尚未定义的错误.为了测试这个,我将以下代码添加到我的主模板文件中:

@section foo {
    <p>Hello</p>    
}
@RenderSection("foo", true)
Run Code Online (Sandbox Code Playgroud)

这些线条正好在彼此之上.模板的呈现因消息而失败Section not defined: "foo".

鉴于该部分明确定义,我是否可能会错过项目配置或控制器中的某些内容以支持部分?@RenderBody()模板中的所有其他@commands(例如)似乎工作正常,因此显然存在对Razor命令的一些支持.

chr*_*.00 9

看起来您正在定义您的部分并尝试从共享布局中呈现它.据我了解,您需要在共享布局中调用RenderSection,然后定义使用该共享布局的视图部分.

来自Scott Gu的链接对于各个部分来说是一个非常好的参考:

MVC 3布局和部分

  • 我发现了错误 - 您无法在RenderPage()呈现的模板中定义部分.显然,部分实际上只能从从Controller传递的实际View模板中定义. (2认同)
  • 这是否意味着如果您在_layout文件中呈现节,则每个其他视图文件都必须在其中定义该节? (2认同)