代码之家  ›  专栏  ›  技术社区  ›  Richard

如何在ASP.Net MVC中找到哪个视图调用了哪个部分视图

  •  2
  • Richard  · 技术社区  · 15 年前

    我想创建一个调试助手函数,可以在MVC部分视图中使用,该视图将显示呈现调用层次结构是什么。

    例如,如果我

    <%=Html.ShowRenderPath() %>
    

    在我称为endpoint.ascx的部分中,它是从另一个视图(midpoint.ascx)调用的,使用

    <% Html.RenderPartial("endpoint") %>
    

    这是从另一个视图(index.aspx)调用的

    <% Html.RenderPartial("midpoint") %>
    

    我希望helper函数写出:

    ~/views/test/index.aspx->~/views/test/midpoint.ascx->~/views/test/endpoint.ascx

    有谁能给我指一个正确的方向,让我得到一个呈现部分的视图,等等?

    因此,我可以调试一个已经存在的MVC应用程序,它使用许多渲染空间,如果我们能看到这些渲染路径,那就容易多了。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Samuel Neff    15 年前

    使用 StackTrace 生成堆栈跟踪。从中可以识别嵌套视图/部分视图类(以及其他内容)。您应该能够通过名称空间将视图从框架代码中分离出来。

        2
  •  0
  •   Richard    15 年前

    感谢您的回复(请投赞成票:-)

    我们找到的解决方案是更新我们的自定义视图引擎以输出HTML注释,这些注释指示每个视图的源,从而在源视图中给出页面构造的细分。这只是在调试模式下输出的。