Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc razor-获取节的列表_Asp.net Mvc_Asp.net Mvc 3_Razor_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc razor-获取节的列表

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*\) 那样的话,你几乎迷路了 这看起来是可行的。以字符串形式读取布局的最佳方法是什么?只有在视图已经渲染时,您才能知道布局(除非在您从

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

没有我知道的内置函数,因为不执行视图就不一定知道名称

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

[^@]@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)