【问题标题】:How to handle a multi panel layout如何处理多面板布局
【发布时间】:2012-04-01 12:08:43
【问题描述】:

我有一个网页布局,其中包括 1 个显示信息的主面板,以及一个可以根据主面板中发生的情况显示多个面板之一的侧面板。例如,主面板可以显示项目列表,您可以单击应该显示编辑面板的项目。或者您可以删除应该显示删除面板的项目。大约有 5 或 6 个面板。这不是整个应用程序,因此我无法将主面板设为部分视图。

我将如何实现这一点?基本上我试图在控制器中返回两个视图,但显然这是不可能的。我的猜测是主面板应该是控制器返回的视图。但是我怎么能设置侧面板呢?我可以以某种方式将 2 个视图合并为 1 个控制器操作中的 1 个视图吗?或者我应该将两个控制器链接到 1 个动作?我该怎么做?

我真的是 ASP.NET MVC 的新手,但我自己在谷歌上搜索答案时遇到了麻烦。感谢您的耐心等待。

【问题讨论】:

    标签: .net asp.net-mvc-3 razor controller multiple-views


    【解决方案1】:

    在数据方面,您将使用包含 @AlexC 提到的不同面板数据的单个视图模型对象。

    在 UI 方面,您可以使用 tabs jquery 插件来呈现不同的面板,如下所示 - http://jquerytools.org/demos/tabs/index.html

    【讨论】:

      【解决方案2】:

      在这种情况下,您可以使用 ViewModel 来收集多个域模型并将它们作为 detailed here 传递给视图(这就是我要做的)。同样,您可以将主面板对象作为强类型对象传递,并使用 ViewData 传递其他数据项。然后,您可以为各个面板使用单独的局部视图,通过使用传递数据来呈现它们

      @{ Html.RenderPartial("ViewName", dataItem); }
      

      【讨论】:

      • 谢谢;我考虑了最后一个选项;这不会导致一个相当大的 switch 语句,它必须弄清楚要显示哪个面板,换句话说就是控制器的工作?
      • 好吧,局部视图只需要一个字符串来定义视图渲染,并且可以从控制器传递,而不是在视图上有很多逻辑。
      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 2013-03-19
      • 1970-01-01
      • 2011-02-07
      • 2017-11-23
      • 2014-12-18
      • 1970-01-01
      • 2021-09-15
      相关资源
      最近更新 更多