2013-09-24 47 views
2

我们正在将一个旧的asp.net站点重新写入MVC4。对旧的page.aspx使用MVC路由?

有许多链接,我们的网站看起来像这样的(我们不控制,但必须支持):

www.some.com/page.aspx?id=5 

有没有一种方式来获得/page.aspx?id的请求= 5放入路由中,以便我们可以处理请求,将它传递给控制器​​/操作,然后从那里处理它?

+0

如果您不需要在应用中使用旧路由,我更愿意使用IIS将旧网址重写为新的路由。 –

回答

6

在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(); 
} 
+2

好的信息。我想补充一点,对于任何想要离开原始.aspx文件的人,您需要重新命名它或遵循这些[说明](http://weblogs.asp.net/jgalloway/archives/2013/08/29 /文件/资源​​存在。 – TSmith

0

退房,你也可能会在您的应用中引入“区域” - 如果您的项目足够大,这将有所帮助。如果你使用它们,它们会反映你的路线。