【问题标题】:ASP.NET MVC, _ViewStart.cshtml contentASP.NET MVC,_ViewStart.cshtml 内容
【发布时间】:2012-11-13 22:12:10
【问题描述】:

在我的 ASP.NET MVC 应用程序中,在我的 _ViewStart.cshtml 文件中,我有如下代码 -

<div>SHOW THIS</div>

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

当页面被渲染时,我希望“SHOW THIS”显示在上面 _Layout.cshtml 页面中的内容,但是“SHOW THIS”却出现在下面 _Layout.cshtml 页面中的内容。

这是正确的吗?如果没有,知道为什么会发生这种情况吗?你能建议如何让它显示在 _Layout.cshtml 内容之上吗? 谢谢!

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    布局将首先被加载,内容将被插入到布局的渲染内容部分。如果您希望此视图的布局中出现某些内容,您可以尝试在控制器中设置 ViewBag 对象,然后在布局中检查该 ViewBag 对象。

    或者您可以在布局中使用可选部分,然后在视图中定义它:

    在布局中:

    @RenderSection("aboveSection", required: false)
    

    那么在你看来:

    @section aboveSection{
        <div>SOME CONTENT</div>
    }
    

    【讨论】:

    • 感谢马特的回答!奇怪的是它会这样工作。
    【解决方案2】:

    这是预期的行为。 “_Layout.chshtml”行仅指定您将使用哪个父模板。

    要重新排列内容,请在 _Layout.cshtml 中进行调整并记下 @RenderBody() 的位置。

    【讨论】:

      猜你喜欢
      • 2013-02-23
      • 2016-07-30
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多