如果没有定义,Razor RenderSection抛出错误

时间:2011-02-15 01:06:47

标签: asp.net-mvc-3 razor

使用@RenderSection("SectionName", false),当Intellisense已经声明默认值为false时,为什么我需要将第二个参数显式设置为false

更新 is the tool tip wrong?

2 个答案:

答案 0 :(得分:15)

RenderSection方法的RTM签名是:

public HelperResult RenderSection(string name, bool required)

还存在一个如下所示的覆盖:

public HelperResult RenderSection(string name) {
    return RenderSection(name, required: true);
}

请注意,此方法不再使用默认参数,而是选择显式替换。

这个方法的签名在MVC 3的开发过程中改变了两次,这解释了为什么你可能会看到令人困惑的例子。

编辑:MVC 3 RTM文档似乎不正确,错误地引用了required参数的默认值。

答案 1 :(得分:1)

它必须是真的。你说该部分是可选的。

@RenderSection(“SectionName”,true)

或 @RenderSection(“SectionName”,可选:true)