剃刀 - 获取部分列表

时间:2012-03-04 16:14:12

标签: asp.net-mvc asp.net-mvc-3 razor asp.net-mvc-4

有没有办法获取布局文件中定义的部分列表?例如,如果我想知道我的Shared / _Layout.cshtml文件中定义了哪些部分,有没有办法解析该Layout文件,以便我知道布局中存在哪些部分?

1 个答案:

答案 0 :(得分:1)

我没有意识到内置函数,因为在不执行视图的情况下不一定知道该名称。

您可以在布局上运行正则表达式,例如

[^@]@RenderSection\(\s*"(?<name>[^"]+)"\s*\)

接受@RenderSection(“foo”)或@RenderSection(“foo”),但跳过@@ RenderSection(@@ escaped @)。

但是,这假定该部分的名称作为字符串文字传入。视图也可能看起来像(不是典型情况,但可能):

@RenderSection(Model.SectionName)

在那种情况下,你几乎迷失了。