在.net核心中发出RenderSection

时间:2018-04-04 15:27:34

标签: asp.net-core .net-core asp.net-core-mvc

以下是_layout.cshtml中的代码:

@{
        Boolean Yes=true;
        if (Yes == true)
        {
            RenderSection("one", false);
        }
        else
        {
            RenderSection("two", false);
        }
    }

这是index.cshtml中的代码:

@section one{
    1111111111111111111111111111111
}
@section two{
    2222222222222222222222222222222
}

当我运行IIS时,它会报告此错误: enter image description here 我不知道它为什么会出现这个错误。我尝试了一些东西,发现如果我移动RenderSection单,如下:

@RenderSection(“一”,假)

然后就行了。

我的代码有什么问题?我知道这只是一个愚蠢的问题,我尽我所能但却无法解决它。

请帮帮我。谢谢。

1 个答案:

答案 0 :(得分:0)

由于"是" two部分没有布局变量的值为true

但是在index.cshtml中,您调用了@section two

因此,当视图呈现时,_Layout.cshtml会尝试将22222...添加到two部分的正文中,但找不到two部分。

这就是为什么你看到你没有定义部分two的例外。

要更正您的代码,您仍然会在_Layout.cshtml

中提供2个部分
@RenderSection("one", false)
@RenderSection("two", false)

然后在index.cshtml

@{
    Boolean Yes = true;
    if (Yes == true)
    {
        @section one{
            1111111111111111111111111111111
        }
    }
    else
    {
        @section two{
           2222222222222222222222222222222
        }
    }
}