Asp.net mvc razor-获取节的列表
是否有方法获取布局文件中定义的截面列表?例如,如果我想知道在我的Shared/_Layout.cshtml文件中定义了哪些节,有没有办法解析该布局文件,以便我知道布局中存在哪些节?没有我知道的内置函数,因为不执行视图就不一定知道名称 您可以在布局上运行正则表达式,如Asp.net mvc razor-获取节的列表,asp.net-mvc,asp.net-mvc-3,razor,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 3,Razor,Asp.net Mvc 4,是否有方法获取布局文件中定义的截面列表?例如,如果我想知道在我的Shared/_Layout.cshtml文件中定义了哪些节,有没有办法解析该布局文件,以便我知道布局中存在哪些节?没有我知道的内置函数,因为不执行视图就不一定知道名称 您可以在布局上运行正则表达式,如 [^@]@RenderSection\(\s*"(?<name>[^"]+)"\s*\) 那样的话,你几乎迷路了 这看起来是可行的。以字符串形式读取布局的最佳方法是什么?只有在视图已经渲染时,您才能知道布局(除非在您从
[^@]@RenderSection\(\s*"(?<name>[^"]+)"\s*\)
那样的话,你几乎迷路了 这看起来是可行的。以字符串形式读取布局的最佳方法是什么?只有在视图已经渲染时,您才能知道布局(除非在您从操作返回视图结果时显式提供主视图),这可能会使整个想法有点棘手。如果您知道布局的(虚拟)路径,那么可以使用。因此,我尝试像这样测试正则表达式:regex layoutRegex=new regex(“[^@]@RenderSection(\s*”(?[^“]+)”)“\s*”)”;var sections=layoutRegex.Matches(layoutAsString);但是我得到了一个错误——“Unescaped escaped escape sequence”“.I试图测试这个错误吗?正则表达式字符串包含反斜杠和双引号,请尝试
”[^@]@RenderSection(\\s*\)(?[^\“]+)\\\s*)“
或@[^@]@RenderSection(?[^”“]+)“\s*”
“[^@]@RenderSection\\\\(?[^\\”)+)\\\s*(?[^\\)+)\\\\\\\\\\\\\\\\\\\\\\\\\\\\s*(?:,\\s*)(:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
@RenderSection(Model.SectionName)