我们正在将一个旧的 asp.net 站点重写为 MVC4。
有许多指向我们网站的链接看起来像这样(我们无法控制但必须支持):
www.some.com/page.aspx?id=5
有没有办法将/page.aspx?id=5的请求放入 Route 中,以便我们可以处理请求,将其传递给控制器/动作,然后从那里处理?
我们正在将一个旧的 asp.net 站点重写为 MVC4。
有许多指向我们网站的链接看起来像这样(我们无法控制但必须支持):
www.some.com/page.aspx?id=5
有没有办法将/page.aspx?id=5的请求放入 Route 中,以便我们可以处理请求,将其传递给控制器/动作,然后从那里处理?
在 RouteConfig 中,添加一个路由(在默认路由之前):
routes.MapRoute(
name: "DefaultAspx",
url: "page.aspx",
defaults: new { controller = "MyAspxPage", action = "Index", id = UrlParameter.Optional }
);
在控制器中捕获页面 id:
(MyAspxPageController)
public ActionResult Index(int id)
{
// Do whatever needed
//return View();
}
看看,你也可以在你的应用程序中引入“区域”——如果你的项目足够大,这会很有帮助。如果您使用它们,它们将反映在您的路线上。