2

シナリオ

私のチームは、かなり複雑な MVC3/C# サイトを構築しています。最近、いくつかのリファクタリングが行われ、多くのビュー、部分ビュー、およびテンプレートが移動しました。ページの 1 つを見ると、どの cshtml ファイルがページのどの部分を担当しているかを判断するのは困難です。作業中のファイルをすばやく確認する方法が欲しいです。

なぜ問題なのか

  • プレゼンテーション層には多くのファイルがあり、フォルダー構造は複雑です。
  • 一部の cshtml ファイルは同じ名前ですが、ファイル パスが異なります。
  • ルーティング テーブルも同様に複雑です。
  • レイアウト、共有ビュー、部分ビュー、およびテンプレートを大幅に活用しました。1 つのページには、それを構築する 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年未満)、まだ頭に残っています。どのメソッドをオーバーライドするか、またはビューのファイル名を取得してレンダリングする方法がわかりません。

4

1 に答える 1

1

この種のデバッグに使用できるnugetパッケージがいくつかあります。

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

http://nuget.org/packages/routedebugger

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

于 2012-04-26T20:38:12.987 に答える