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

@RenderSection("scripts", required: false)

那就完美了,但是如果我这样做
@{
    RenderSection("scripts", required: false);
}

那么脚本部分将无法呈现,而我将得到“以下部分已定义,但尚未为布局页面“〜/Views/Shared/_Layout.cshtml”呈现:“脚本”。”错误

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

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

最佳答案

RenderSection不写任何内容。相反,此方法返回实现HelperResultIHtmlString,并可以使用其WriteTo方法将其呈现到页面上。

@{
    HelperResult renderSection = RenderSection("scripts", required: false);
    renderSection.WriteTo(Output);
}

当使用@RenderSection时,它会自动将其呈现到页面上

10-08 14:11