MVC 3を既存のWebフォームサイトに追加する際には、すべてではありませんが、 webformsサイトのグローバルasaxを変更して、MVCとweb.configの変更をサポートしました。しかし、まだいくつかの問題があります。既存のWebformsサイトでMVCを実行
MVC 3は貪欲である - それは私がMVCではなく、私が欲しいものであるWebフォームページのエントリーページに移動ルートに移動してデフォルトでは、サイトのルートを引き継ぎます。ルートにナビゲートするときに明確にするには、mysite.com/default.aspxに移動します。私は
routes.MapPageRouteを追加し、サイトのルートを修正するには(「SiteRoot」、「」、「〜/ Default.aspxの」) は、しかし、これは、私は
のようなめちゃくちゃなURLで終わるようなMVCのURLを壊しますhttp://localhost:86/default?action=Index&controller=Blog サイトルートがwebforms default.aspxに移動し、MVC URLが正しいように修正するにはどうすればよいですか?
MVC 3は、Webフォームが使用するHttpHandlersのカップルを壊します。具体的には、私はハンドラーを使って、画像にヘッダーを期限切れにし、スタイルシートとjavascriptファイルを結合するリソースハンドラーを追加します。 RegisterRoutesにルートが存在しないので、リソースハンドラ経由でスタイルシートが読み込まれないように、これらのハンドラが壊れてしまいます。将来は失効します。また、httpcompressionモジュールも動作を停止します。では、Webフォームのためのhttphandlerとモジュールをどのように維持しながら、サイトのMVC 3部分のルートを保持していますか?
これらの2つの問題は、MVC3とウェブフォームのミキシングに関するさまざまなブログ記事には誰も言及していません。
ああ、私はです.IgnoreRoute( "{resource} .aspx/{* pathInfo}")はglobal.asaxにあります。リソースハンドラはaspxファイル拡張子を使用しているので、グローバリゼーションでは、hanlderは機能しますが、そうは思わないと思います。
私が知っているもう1つのオプションは、wbeformsサイト内にフォルダを設定し、それを独自のアプリケーション開始ポイントとして実行することです。しかし、私は本当にsite.com/blog/blog/index第1のブログは独自のアプリケーションポイントとして実行されているフォルダで、第2のブログはコントローラです。
よろしくお願いいたします。 –