什么';我的ASP.NET MVC路线有什么问题?

什么';我的ASP.NET MVC路线有什么问题?,asp.net,asp.net-mvc-2,routing,routes,Asp.net,Asp.net Mvc 2,Routing,Routes,我的ASP.NET MVC应用程序中有一些路由,用于处理旧URL的重定向。我正在重定向的URL是: contentSpanishContentList.aspx 以下是路线: routes.MapRoute("RedirectLegacyContent1", "content{contentUri}.aspx", new { controller = "Redirect", action = "Content", contentU

我的ASP.NET MVC应用程序中有一些路由,用于处理旧URL的重定向。我正在重定向的URL是:

contentSpanishContentList.aspx
以下是路线:

routes.MapRoute("RedirectLegacyContent1",
                "content{contentUri}.aspx",
                new { controller = "Redirect", action = "Content", contentUri = string.Empty, contentId = 0 });
问题是它被认为是未找到的。我发现问题出在(粗体)contentSpanish*Content*List.aspx。我应该怎么做才能使此路线适用于此案例?

两种解决方案
  • 重命名页面,使其不包含相同的常量字符串(在您的示例中,是单词
    内容
  • 编写一个能够解析您的请求的自定义路由-您只需覆盖
    GetRouteData
    方法。如果您计划只对传入请求使用此路由(不在视图中生成指向这些页面的任何Url,即使用
    Url.Action
    Html.ActionLink
    )然后,最简单的方法是生成类似于
    RegExRoute
    的东西,它很容易编写,也很容易解决此类请求
  • 第一种是简单的,第二种是普遍的

  • 使用Fiddler查看正在发生的事情。404是在第一次请求时发生的吗?还是在重定向之后发生的

  • 安装并查看它告诉您什么


  • 您请求的完整URL是什么?该路由只匹配
    /content{contentUri}.aspx
    。http:///contentSpanishContentList.aspxThey 除了名称包含“内容”时,所有操作都有效。您的重定向控制器上有一个名为“内容”的操作方法?是的。我知道它适用于大多数其他情况,如“contentSpanishContetList.aspx”或“contentSpanishContetList.aspx”#2是它。这很有帮助:哦…路由调试器,我喜欢。