【问题标题】:asp.net mvc 4 (Razor) partial page with layout - Massive Confusion带有布局的asp.net mvc 4(Razor)部分页面 - 巨大的混乱
【发布时间】:2018-01-24 23:49:07
【问题描述】:

我有一个 _Layout.cshtml 作为页面的顶级布局(包括页眉和页脚等)。然后,我有一个 _MainLayout.cshtml 我想包含两个部分页面。请参阅下面的代码。

为了简单起见,我现在要做的就是显示两个部分页面(每个页面都包含简单的文本“Hello World”)。听起来很简单吧? 不是!

_MainLayout.cshtml

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

<div>
    <div class="large-2 columns" style="min-height: 800px; border-style: solid; border-width: thin; border-color: lightgray; ">
        @Html.Partial("~/Views/Shared/MenuPartial.cshtml");
    </div>
    <div class="large-10 columns" style="min-height: 800px; border-style: solid; border-width: thin; border-color: lightgray; ">
        @Html.Partial("~/Views/Shared/ContentPartial.cshtml");
    </div> 
</div>

此布局中的部分是否需要是布局本身?我尝试了很多不同的事情,以至于我完全感到困惑和沮丧。

最终这些都需要有控制器和大量的 JavaScript。但现在,我只想显示两个非常简单的局部视图。

【问题讨论】:

  • 您向我们展示了哪个视图? (如果你声称_Layout.cshtml 是你的布局,那么拥有Layout = ".._MainLayout.cshtml" 是没有意义的)
  • 你是对的。我搞砸了。问题已更新。我在锁定的计算机上工作,因此无法从实际代码中复制和粘贴。 :-(
  • 不清楚你想做什么。您想创建嵌套布局吗? - 如果是这样this article我的帮助
  • 好吧,我使用的是嵌套布局,这可能就是我如此困惑的原因。这两个对局部视图的引用是否需要引用单独的局部视图布局,因为我是从布局中引用它们?我能够让嵌套布局与部分一起使用,但我真的在部分视图上苦苦挣扎。最终,我需要一些 JavaScript 来根据用户选择在一个局部视图上显示 7 个不同菜单中的一个,而在另一个局部视图上显示的内容将取决于用户在另一个局部视图中从该菜单中进行的选择。
  • 我不明白你最后的评论(这真的没有意义)。您想使用嵌套布局有什么特别的原因吗?

标签: asp.net-mvc-4 razor asp.net-mvc-partialview


【解决方案1】:

如果您只想在 start 上显示两个部分页面,则将所有这些代码放入控制器操作视图中。而不是在布局中。

【讨论】:

  • 启动时显示的是完全不同的视图。我的视图是根据用户从标题中的菜单中选择显示的内容。根据用户选择,左侧部分视图将包含 7 个列表选项中的 1 个。右侧局部视图将从左侧局部视图中的用户选择中填充。设置显示元素需要两个局部视图的控制器。
  • 在重新考虑我的实施后,我意识到您的回答确实有效。 :-)
  • 好的...除了上面的cmets ..如果左部分视图是通用视图作为将在右面板中呈现的所有页面的布局....那么您的左视图代码必须在布局视图本身。希望有意义..
猜你喜欢
  • 1970-01-01
  • 2016-11-25
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
相关资源
最近更新 更多