我们正在将一个旧的asp.net站点重新写入MVC4。对旧的page.aspx使用MVC路由?
有许多链接,我们的网站看起来像这样的(我们不控制,但必须支持):
www.some.com/page.aspx?id=5
有没有一种方式来获得/page.aspx?id的请求= 5放入路由中,以便我们可以处理请求,将它传递给控制器/操作,然后从那里处理它?
我们正在将一个旧的asp.net站点重新写入MVC4。对旧的page.aspx使用MVC路由?
有许多链接,我们的网站看起来像这样的(我们不控制,但必须支持):
www.some.com/page.aspx?id=5
有没有一种方式来获得/page.aspx?id的请求= 5放入路由中,以便我们可以处理请求,将它传递给控制器/操作,然后从那里处理它?
在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();
}
好的信息。我想补充一点,对于任何想要离开原始.aspx文件的人,您需要重新命名它或遵循这些[说明](http://weblogs.asp.net/jgalloway/archives/2013/08/29 /文件/资源存在。 – TSmith
退房,你也可能会在您的应用中引入“区域” - 如果您的项目足够大,这将有所帮助。如果你使用它们,它们会反映你的路线。
如果您不需要在应用中使用旧路由,我更愿意使用IIS将旧网址重写为新的路由。 –