бритва - получить список разделов - PullRequest
3 голосов
/ 04 марта 2012

Есть ли способ получить список разделов, определенных в файле макета? Например, если я хочу узнать, какие разделы определены в моем файле Shared / _Layout.cshtml, есть ли способ проанализировать этот файл макета, чтобы я знал, какие разделы существуют в макете?

1 Ответ

1 голос
/ 04 марта 2012

Нет встроенной функции, о которой я знаю, потому что имя не обязательно известно без выполнения представления.

Вероятно, вы можете просто запустить регулярное выражение для ваших макетов, например

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

, который принимает @RenderSection ("foo") или @RenderSection ("foo"), но пропускает @@ RenderSection (@@ escaped @).

Однако это предполагает, что имя раздела передается как строковый литерал.Представление также может выглядеть (не типичная ситуация, но возможно):

@RenderSection(Model.SectionName)

В этом случае вы в значительной степени потеряны.

...