4

古い ReportViewer Webform を現在の MVC3 プロジェクトに統合しようとしています。で利用できるようにしたいと思いますhttp://<server>/Reports/ViewReport.aspx。最初に、プロジェクトのルートに というタイトルのフォルダーを作成し、Reportsそこにページをダンプしましたが、問題なく動作しました。

ただし、現在は という名前のエリアがありReports、デフォルトのルーティングを正しく機能させるには、フォルダーを削除する必要がありました。

Reportsプロジェクトの物理的に別の場所にある場合でも、Web フォームの URL がそこから来ているように見えるようにルーティングを構成するにはどうすればよいですか?

4

1 に答える 1

1

これを行う最も簡単な方法は、IIS URL 書き換えモジュールを使用することです。アプリケーションのコードやルーティングに変更はありません。アクセス可能な非 MVC 関連フォルダーのどこかに Web ページを配置するだけです。

http://www.iis.net/download/urlrewrite

ただし、それ以外の場合は、ファイルを通常の Asp.net Web フォーム パイプラインで処理する必要があることを意味するRouteCollection.RouteExistingFilesデフォルトの area フォルダーにファイルを直接配置することもできます。false

System.Web.HttpNotFoundHandlerただし、最も重要なことは、ハンドラーが構成されているフォルダー内にファイルを置かないことです。デフォルトでは、Views フォルダーにはこれらが構成されているため、サブフォルダー ツリー内のファイルには要求レベルからアクセスできません。もちろん、アプリケーションはそれらにアクセスできます(とにかくMVCの仕組みです)。

于 2012-08-23T22:14:59.983 に答える