2011-10-03 12 views
8

最近、MVCを使用するようにAsp.Net Webフォームアプリケーションを部分的に変換しました。 Webフォーム(.aspxページ)にはまだアプリケーションの一部があり、MVCルーティングを使用してコントローラなどを操作します。 私たちはまだ使用して、いくつかのaspxページを含む「ユーザー」というフォルダがありMVC URLルーティングでディレクトリリストを上書きする

routes.MapRoute("Users", "Users/{controller}/{action}/", new { controller = "Timesheet", action = "List" }); 

のようなMVCのルートを追加しました。 URL「http://localhost/Users/」を押すと、「Users」フォルダの内容のディレクトリ一覧が表示されます。どうやら、ディレクトリのリストはMVCのURLルーティングよりも優先され、これはIIS7サーバーの設定を変更することで上書きされる可能性があります。

コードやweb.configの変更により、この動作をどのように変更できますか?

参考文献:

http://forums.asp.net/t/1251156.aspx/1

http://learn.iis.net/page.aspx/121/iis-7-and-above-modules-overview/

+0

http://www.packtpub.com/article/mixing-asp.net-webforms-and-asp.net-mvcは、既存のWebフォームアプリケーションにMVCを追加するために使用したメソッドです – prabug

答えて

0

使用このignoreroute:

routes.IgnoreRoute("{WebPage}.aspx/{*pathInfo}"); 

RegisterRoutes方法

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");       
      routes.IgnoreRoute("{WebPage}.aspx/{*pathInfo}");    

      //routes.MapPageRoute("users", "users", "~/admin/default.aspx"); 

      routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new { controller = "home", action = "index", id = UrlParameter.Optional } // Parameter defaults 
      ); 

     } 
リスト

これは、拡張子が「.aspx」であるすべてのページをルーティングから除外します。

2

RouteCollectionでRouteExistingFiles = trueを設定すると、それだけが達成されます。これにより、ASP.NET MVCは既存のディレクトリでもルートを処理できます。

+0

Hanselmanがここでこれについて説明しました:http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx – Kunal

関連する問題