MVC路由:如何将/mypath/Default.aspx路由到/Default.aspx并保留QueryString?

时间:2010-12-30 19:23:43

标签: asp.net-mvc-2 routing iis-6 windows-server-2003

我们将解决方案升级到MVC 2.外部链接仍在使用/mypath/Default.aspx,查询字符串为n = 10。有没有办法用控制器捕获该路由并使用正确的查询字符串调用Default.aspx文件?

我们尝试使用IIS6重新路由以及元刷新,但两者都剥离了查询字符串。

Nick Craver的answer看起来很有希望作为这个问题的答案。

1 个答案:

答案 0 :(得分:1)

我不确定你是什么意思“并使用正确的查询字符串调用Default.aspx文件?”但如果您打算调用默认路由,则可以轻松完成。

您应该只能在“mypath / Default.aspx”上指定路线。查询字符串将自动绑定到您的方法。

例如:

routes.MapRoute(
    "LegacyUrl", // Route name
    "mypath/Default.aspx", // URL with parameters
    new { controller = "Home", action = "Index"} 
);

然后你的方法:

[HttpGet]
public ActionResult Index(int n)
{
    // do something with n, maybe pass it to the View
    return View();
}