【发布时间】:2012-11-15 13:30:27
【问题描述】:
我一直在寻找一种方法来确定视图的“嵌套级别”。我在 stackoverflow.com 上找到了:Determine view 'nesting level'。但这仅适用于RenderAction,并且仅说明它是否是子视图。
我想要的是布局具有级别 0,在布局中呈现的视图(例如使用 @RenderBody())具有级别 1,在该视图中呈现的视图(例如使用 @Html.Partial(...))具有级别 2。
例如:
- _Layout.cshtml (0)
- _LoginPartial.cshtml (1)
- 索引.cshtml (1)
- 数据表.cshtml (2)
- DataHeader.cshtml (3)
- DataRow.cshtml (3)
- 数据表.cshtml (2)
有人有解决办法吗?
【问题讨论】:
-
我没有发现问题。为什么你需要这样做,你会从代码中获得什么好处?
-
我这样做的原因是我编写了一个自定义脚本扩展方法,该方法将脚本排入队列并解决依赖关系并稍后在布局中呈现。当我测试它时,我发现脚本出现乱序。这是由于视图是如何呈现的,即从最里面到最外面。所以局部视图的脚本首先出现。使用这个嵌套级别,我可以按级别对排队的脚本进行排序并避免这种情况。我可以想到另一个有用的例子,递归部分视图。
-
那么你真的关心javascript包含的优先系统吗?
标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-partialview nested-views