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

Oma*_*mar 15 razor asp.net-mvc-3

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

更新: 工具提示错了吗?

mar*_*ind 15

RenderSection方法的RTM签名是:

public HelperResult RenderSection(string name, bool required)
Run Code Online (Sandbox Code Playgroud)

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

public HelperResult RenderSection(string name) {
    return RenderSection(name, required: true);
}
Run Code Online (Sandbox Code Playgroud)

请注意,此方法不再使用默认参数,而是选择显式覆盖.

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

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

  • 啊,我明白你的意思了.文档已过时.我将ping MSDN人员以更新它. (3认同)