如何在ASP.Net MVC中找到哪个视图称为哪个局部视图

时间:2010-11-22 17:14:38

标签: c# model-view-controller asp.net-mvc-2

我想创建一个调试辅助函数,我可以在MVC局部视图中使用它来显示渲染调用层次结构。

例如,如果我放置

<%=Html.ShowRenderPath() %>

在我的部分名为endpoint.ascx中,并使用

从另一个视图(midpoint.ascx)调用
<% Html.RenderPartial("endpoint") %>

,这是从另一个视图(index.aspx)

调用的
<% Html.RenderPartial("midpoint") %>

我想要帮助函数写出:

〜/ views / test / index.aspx - &gt; 〜/ views / test / midpoint.ascx - &gt; 〜/视图/测试/ endpoint.ascx

任何人都可以指出我正确的方向来获得部分等等的视图吗?

这样我就可以调试一个已经存在的MVC应用程序,该应用程序使用了许多renderpatials,如果我们能看到这些渲染路径会更容易。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

感谢您的回复(upvote for your effort :-)

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