Asp.net mvc Mvc 3重定向路由行为异常

Asp.net mvc Mvc 3重定向路由行为异常,asp.net-mvc,asp.net-mvc-3,redirect,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 3,Redirect,Asp.net Mvc Routing,我已经尝试解决这个问题好几天了,但都没有成功。 情况是,我已经将一个旧的web表单站点重写为mvc 3,并且有一堆旧的url:s需要重定向到新的url:s 这是global.asax中的两条路由的外观,它们应该捕获到对旧url:s的所有请求 routes.MapRoute( "legacyevents", "events/{*slug}", new { controller = "Redirect", action = "

我已经尝试解决这个问题好几天了,但都没有成功。 情况是,我已经将一个旧的web表单站点重写为mvc 3,并且有一堆旧的url:s需要重定向到新的url:s

这是global.asax中的两条路由的外观,它们应该捕获到对旧url:s的所有请求

 routes.MapRoute(
            "legacyevents",
            "events/{*slug}",
            new { controller = "Redirect", action = "RedirectLegacyRoute" },
            new[] { "Web.Controllers" }
          );

            routes.MapRoute(
            "legacyarticles",
            "articles/{*slug}",
            new { controller = "Redirect", action = "RedirectLegacyRoute" },
            new[] { "Web.Controllers" }
          );
奇怪的是当一个请求看起来像这样

events/randomevent__12.aspx
一切正常,但如果事件中的E为大写事件/randomevent\uuuuuu12.aspx asp.net某处在url中添加了另一个事件词,因此当它点击重定向控制器时看起来是这样的

events/events/randomevent__12.aspx
由于几年前我在编写web表单应用程序时缺乏SEO方面的知识,很多旧URL的传入链接大小写不一:所以我真的必须解决这个问题

应该处理文章的路由按预期工作,并且不关心传入请求url的大小写,这使得这种情况非常奇怪,因为路由指向同一个重定向控制器

任何帮助都将不胜感激,如果您需要任何其他信息,我将很乐意提供

致意


//K

您知道在路由匹配中可以使用正则表达式的全部功能吗

参见示例