忽略MVC路由中的所有.axd文件

时间:2017-04-05 07:05:40

标签: c# asp.net asp.net-mvc asp.net-mvc-routing

在我的应用程序中,mvc和web表单都存在。

但是当我打开任何.aspx页面时,会在Application_Error错误中抛出错误。

  

路径控制器' /WebResource.axd'未找到或未实现IController。

     

路径控制器' /ScriptResource.axd'没找到或没有   没有实现IController。

我尝试了所有这些方法,但它们都没有工作。

  • 在RegisterRoutes方法的顶部添加。

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" });

  • 创建一个FileTypeConstraint类来检查文件ext。

public class FileTypeConstraint : IRouteConstraint
    {
        private readonly string[] MatchingFileTypes;

        public FileTypeConstraint(string matchingFileType)
        {
            MatchingFileTypes = new[] { matchingFileType };
        }

        public FileTypeConstraint(string[] matchingFileTypes)
        {
            MatchingFileTypes = matchingFileTypes;
        }

        public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
        {
            if (values["url"] != null)
            {
                string path = values["url"].ToString();
                return MatchingFileTypes.Any(x => path.ToLower().EndsWith(x, StringComparison.CurrentCultureIgnoreCase));
            }
            else
            {
                return false;
            }
        }

并在顶部和底部添加了这一行

 routes.MapRoute(
     "Defaultaxd",
      "{*url}",
       new { controller = "Home", action = "Index", id = UrlParameter.Optional },
        new { myCustomConstraint = new FileTypeConstraint(new[] { "axd" }) }
          );

尝试了所有这些链接。

HttpHandlers with ASP.NET MVC

ASP.NET MVC routing issue?

Using URL Routing for Web Forms and StopRoutingHandler for Favicon

0 个答案:

没有答案