1

MVCを古いWebフォームアプリに統合しました。ASP.NETのバージョンは4.0です。

次の構成では、ドメインに移動するときにDefault.aspxページがデフォルトで読み込まれません。(つまり、http://www.myfakeeeeeeeeeeeedomain.com/

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>

ただし、値をfalseに切り替えると、ドメインに移動するときにdefault.aspxページがデフォルトで読み込まれますが、MVCルーティング要求は機能しません。default.aspxページを正しく表示しながら、MVCルーティングを維持するにはどうすればよいですか?

注:「デフォルトページ」オプションは、IIS7で正しく設定されています。

必要に応じて、より多くの情報を提供できます。

4

1 に答える 1

0

私の質問は、この投稿を見て答えられました: MapPageRoute を asp.net mvc プロジェクトに追加した後、サイトが停止してホーム コントローラーに入る

実際に実装したコードは次のとおりです。

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("DefaultPage", "", "~/Default.aspx", false, null, new RouteValueDictionary { { "outgoing", new CustomWebFormRouteConstraint() } });
        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

    public class CustomWebFormRouteConstraint : IRouteConstraint
    {
        // Only match on incoming requests
        public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
        {
            return routeDirection == RouteDirection.IncomingRequest;
        }
    }
于 2012-09-07T03:15:11.650 に答える