3
有没有办法获得布局文件中定义的部分列表?例如,如果我想知道我的Shared/_Layout.cshtml文件中定义了哪些部分,是否有解析该布局文件的方法,以便知道布局中存在哪些部分?剃刀 - 获取部分列表
有没有办法获得布局文件中定义的部分列表?例如,如果我想知道我的Shared/_Layout.cshtml文件中定义了哪些部分,是否有解析该布局文件的方法,以便知道布局中存在哪些部分?剃刀 - 获取部分列表
有没有内置的功能我知道的,因为该名称不一定而不执行视图闻名。
你可能只运行在你的布局正则表达式,像
[^@]@RenderSection\(\s*"(?<name>[^"]+)"\s*\)
它接受@RenderSection( “富”)或@RenderSection( “富”),但跳过@@ RenderSection(中@ @转义@)。
然而,这种假设部分的名称传递作为一个字符串。该视图也可能看起来像(不是你典型的情况,但可能):
@RenderSection(Model.SectionName)
在这种情况下,你几乎失去了。
这看起来像可以工作。以字符串形式阅读Layout的最佳方式是什么? – Victor 2012-03-04 17:10:53
只有在视图已经呈现时您才会知道布局(除非您在从操作返回视图结果时明确提供主控),这可能会使整个想法变得有点棘手。如果您知道布局的(虚拟)路径,则可以使用[File.ReadAllText](http://msdn.microsoft.com/de-de/library/system.io.file.readalltext.aspx)。 – 2012-03-04 17:22:29
所以我想测试这样的正则表达式: 正则表达式layoutRegex =新的正则表达式(? “[^ @] @ RenderSection \(\ S *”( [^ “] +)” \ S * \)“) ; var sections = layoutRegex.Matches(layoutAsString); 但我得到一个错误 - “未转义的转义序列”我试图测试这个错误吗? –
Victor
2012-03-04 17:50:22