有没有办法获取布局文件中定义的部分列表?例如,如果我想知道我的Shared / _Layout.cshtml文件中定义了哪些部分,有没有办法解析该Layout文件,以便我知道布局中存在哪些部分?
答案 0 :(得分:1)
我没有意识到内置函数,因为在不执行视图的情况下不一定知道该名称。
您可以在布局上运行正则表达式,例如
[^@]@RenderSection\(\s*"(?<name>[^"]+)"\s*\)
接受@RenderSection(“foo”)或@RenderSection(“foo”),但跳过@@ RenderSection(@@ escaped @)。
但是,这假定该部分的名称作为字符串文字传入。视图也可能看起来像(不是典型情况,但可能):
@RenderSection(Model.SectionName)
在那种情况下,你几乎迷失了。