Как я могу показать, какие cshtml файлы создают мою страницу?

Сценарий

Моя команда строит довольно сложный сайт MVC3/C#. В последнее время произошел некоторый рефакторинг, и многие представления, частичные представления и шаблоны были перемещены. Когда я смотрю на одну из наших страниц, трудно сказать, какой файл cshtml отвечает за какой фрагмент страницы. Я бы хотел быстрее узнать, над каким файлом я должен работать.

Почему это проблема

  • На нашем уровне представления много файлов, а структура папок сложная.
  • Некоторые файлы cshtml имеют одинаковые имена, но разные пути к файлам.
  • Наши таблицы маршрутизации также сложны.
  • Мы широко использовали макеты, общие представления, частичные представления и шаблоны. На одной странице может быть более 10 файлов cshtml, создающих ее.
  • Большая часть текста на стороне клиента происходит из строк ресурсов, поэтому я не могу просто нажать Ctrl-F для текста на странице.
  • Прохождение через отладчик не экономит мне много времени.

Ничто из этого не является шоу-стопором, но это отнимает много времени.

Что я хочу

Когда я запускаю его на локальном хосте (только), я бы хотел, чтобы визуализированный HTML получился примерно так:

<!-- From: ~/shared/_layout.cshtml -->
<html>
<body>
    <!-- From: ~/admin/view.cshtml -->
    <h1>Here comes a list of widgets:</h1>

     <!-- From: ~/widgets/list.cshtml -->
     <ul>
         <!-- From: ~/widgets/view.cshtml -->
         <li>Widget 1</li>
         ...etc.

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

Идеи до сих пор

Моя идея состояла в том, чтобы настроить базовый класс, который мы используем для нашего pageBaseType, но я немного новичок в MVC (< 1 год), и это все еще немного над моей головой. Я не уверен, какой метод переопределить или как получить и отобразить имя файла представления.

1 ответ

Решение

Для такого рода отладки доступны несколько пакетов nuget:

http://nuget.org/packages/Glimpse.Mvc3

http://nuget.org/packages/routedebugger

https://preview.nuget.org/packages/RouteMagic

Другие вопросы по тегам