【问题标题】:Show one view as a part in another view in mvc5在 mvc5 中将一个视图显示为另一个视图的一部分
【发布时间】:2015-04-23 07:08:10
【问题描述】:

我有 3 个不同的视图以及它们各自的控制器和操作方法。到目前为止,在相应的按钮单击上,我正在显示每个视图。

现在客户端请求是一个新视图,它包含第一个视图作为页面的一半,其余两个视图作为选项卡式视图。默认情况下,必须在页面的下半部分加载一个选项卡式视图,另一个视图仅在相应的选项卡单击时按需加载。 注意:每个视图都来自服务调用。 请给我一些例子或参考资料。我希望对我的代码进行最小的更改

【问题讨论】:

    标签: c# jquery razor model-view-controller


    【解决方案1】:

    为什么不将其创建为局部视图,并且可以将其加载到 Tabbed div 或任何其他 div 中。这样,您就可以在页面上获得尽可能多的视图。此外,您可以稍后在该页面的某些事件上加载视图。 check this stack.

    【讨论】:

    • 我从必须作为局部视图加载的视图(Coverage)中删除了布局,并使控制器返回语句从返回视图(“Coverage”,coverageModel)返回ParialView(“Coverage”, coverageModel) 并且在主视图的 div 标记中,我编写了类似 @{Html.RenderPartial("Coverage")} 的代码,但是它给出了错误,就像传递给字典的模型项是 policyDetails 类型一样,但是这个字典需要模型CoverageModel 类型。你能帮上忙吗
    【解决方案2】:

    根据您在上面描述的内容以及您在 one and free 的帖子下制作的 cmets,您似乎希望拥有一个在内部和外部呈现多个局部视图的主页一个选项卡式面板。此外,在稍微更改布局后,您在解析(某些)这些局部视图的模型时遇到了麻烦。

    如果您将“coverageModel”传递给主视图,但部分视图需要来自不同控制器的不同模型,您应该考虑使用类似以下的内容(这是来自 Bootstrap 的示例,但可能适用于您的情况) :

    <div class="tab-content">
        <div id="tab1" class="tab-pane active">
                @{ Html.RenderAction("Action", "Controller1");}
         </div>
         <div id="tab2" class="tab-pane">
                @{ Html.RenderAction("Action", "Controller2");}
        </div>
    </div>
    

    同样,您的选项卡布局可能与上面的示例完全不同,但重要的是 RenderAction 将能够使用不同的模型渲染部分。

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 1970-01-01
      • 2019-11-10
      • 2011-06-21
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      相关资源
      最近更新 更多