ASP.NET MVC野生卡控制器的任何参数路由

ASP.NET MVC野生卡控制器的任何参数路由

问题描述:

我想有控制器/动作,这样,当我浏览到:ASP.NET MVC野生卡控制器的任何参数路由

mysite.com/whatever. i type here will pipe into...a ! string. 

public ActionResult Index(string anything) 
{ 
    // anything = whatever. i type here will pipe into...a ! string. 
    return View(); 
} 

我需要建立一个自定义的路线?

我已经试过这一点,但它似乎没有处理周期等

 routes.MapRoute(
      name: "Default", 
      url: "{*anything}", 
      defaults: new { controller = "Home", action = "Index" } 
     ); 
+0

这是因为一段时间导致IIS接管并尝试静态地服务它认为是一个文件,而不是将它交给MVC。 – 2014-09-19 19:15:48

+0

我从来没有尝试过,但属性路由可能是你可以看看的东西。不知道是否会像克里斯说的那样。 – Gjohn 2014-09-19 19:25:48

+0

感谢我的想法,我还没有想出一个理想的解决方案。盒子里有什么东西吗? – aherrick 2014-09-20 13:03:44

如果你限制你的路线有一个包罗万象的正则表达式:

routes.MapRoute(
    "Default", 
    "{*anything}", 
    new { controller = "Home", action = "Index" }, 
    new { anything = @"^(.*)?$" } 
); 

,并确保您具有UrlRoutingModule set up in your web.config with no precondition以确保即使未管理的请求(例如那些被认为具有扩展名的请求)通过路由模块,您的catchall路径应该工作正常。