【问题标题】:Asp.net Default page not returning runAllManagedModulesForAllRequests = trueAsp.net 默认页面不返回 runAllManagedModulesForAllRequests = true
【发布时间】:2012-08-31 18:42:08
【问题描述】:

我已将 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 路由?

注意:“默认页面”选项已在 IIS 7 中正确设置。

如果需要,我可以提供更多信息。

【问题讨论】:

    标签: asp.net iis-7 web-config


    【解决方案1】:

    通过查看此帖子回答了我的问题:After add MapPageRoute to an asp.net mvc project, the site stops to enter in Home Controller

    我实现的实际代码如下:

        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;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      • 2021-09-25
      • 2014-11-25
      • 2013-11-14
      • 1970-01-01
      • 2016-02-26
      相关资源
      最近更新 更多