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

时间:2014-04-03 20:07:40

标签: c# asp.net razor

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

@RenderSection("scripts", required: false)

那么它的效果非常好,但如果我这样做了

@{
    RenderSection("scripts", required: false);
}

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

任何想法为什么RenderSection / Script.Render不能在代码块中?

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

1 个答案:

答案 0 :(得分:4)

RenderSection没有写任何东西。相反,此方法返回HelperResult,它实现IHtmlString并可以使用其WriteTo方法呈现给页面。

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

使用@RenderSection时会自动将其呈现到页面