【问题标题】:Determine if View is being rendered as Partial确定 View 是否呈现为 Partial
【发布时间】:2013-01-16 00:14:57
【问题描述】:

有没有办法确定视图是否呈现为部分视图?

我希望通过捕获这个来扩展对我正在编写的部分的重用......并在必要时为视图分配适当的布局。

目前我只是在一个 div 中呈现它,但我也可以看到我们将它用作模式并且可能它是自己的页面。

(模式不需要任何更改,所以不用担心)

编辑: 澄清我在问什么。

我想知道是否有任何方法可以确定由...渲染的视图之间的区别...

/path/to/controller

Html.Partial("/path/to/view.cshtml")

【问题讨论】:

    标签: c# asp.net-mvc-3 razor partial-views


    【解决方案1】:

    为什么不@if (Layout==null)? 我仍然会为“自己的”页面推荐另一个视图并在那里设置布局。

    【讨论】:

      【解决方案2】:

      在你看来(假设 Razor 语法):

      @if(typeof(this) == Controller.PartialView)) //code
      

      @if(this is Controller.PartialView) //code
      

      【讨论】:

      • 我正在使用 Razor。所以只是为了确认是否直接进入该视图的路径,这将返回false,但如果我这样做Html.Partial(),它将是true
      • 这只是一个基本的答案,我不确定你在问什么。如果您希望呈现的页面能够指示它是否从 Views 文件夹中呈现为 PartialView,则需要包含某种标志
      • 我在问题中添加了一些信息以供澄清。
      • 嗯。我不相信有一种方法可以在不包含某种属性来传递客户端的情况下说明这一点。响应只是给你 HTML,它不包含任何关于它是如何生成的信息。
      • 足够好。目前没有发生任何模型绑定,所以我可能只是将它绑定到 bool,因为没有办法通过框架来做到这一点。
      【解决方案3】:

      根据@Pheonixblade9 的回复和其他答案的缺乏,目前看来这是不可能的。我最终只是将视图的Model 绑定为bool 并在渲染视图/部分时传递此值。

      【讨论】:

        猜你喜欢
        • 2019-04-28
        • 1970-01-01
        • 1970-01-01
        • 2012-05-16
        • 1970-01-01
        • 2014-06-17
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        相关资源
        最近更新 更多