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" }
);
答
如果你限制你的路线有一个包罗万象的正则表达式:
routes.MapRoute(
"Default",
"{*anything}",
new { controller = "Home", action = "Index" },
new { anything = @"^(.*)?$" }
);
,并确保您具有UrlRoutingModule set up in your web.config with no precondition以确保即使未管理的请求(例如那些被认为具有扩展名的请求)通过路由模块,您的catchall路径应该工作正常。
这是因为一段时间导致IIS接管并尝试静态地服务它认为是一个文件,而不是将它交给MVC。 – 2014-09-19 19:15:48
我从来没有尝试过,但属性路由可能是你可以看看的东西。不知道是否会像克里斯说的那样。 – Gjohn 2014-09-19 19:25:48
感谢我的想法,我还没有想出一个理想的解决方案。盒子里有什么东西吗? – aherrick 2014-09-20 13:03:44