Razor:Render在代码块中不起作用

Ste*_*eve 5 c# asp.net razor

如果我这样做,这对我来说似乎很奇怪

@RenderSection("scripts", required: false)
Run Code Online (Sandbox Code Playgroud)

然后它工作得很好,但如果我这样做

@{
    RenderSection("scripts", required: false);
}
Run Code Online (Sandbox Code Playgroud)

然后脚本部分将不会被渲染,我会得到"以下部分已经定义但尚未为布局页面呈现"〜/ Views/Shared/_Layout.cshtml":"scripts"." 错误

知道为什么RenderSection/Script.Render不能进入代码块吗?

编辑:我试图在代码块中放置一个断点,当页面加载时断点被点击,并且RenderSection方法执行时没有任何异常

mez*_*tou 4

RenderSection不写任何东西。相反,此方法返回一个HelperResult实现IHtmlString并可以使用其WriteTo方法呈现到页面的对象。

@{
    HelperResult renderSection = RenderSection("scripts", required: false);
    renderSection.WriteTo(Output);
}
Run Code Online (Sandbox Code Playgroud)

使用时@RenderSection自动渲染到页面