Asp.net 对旧页面使用MVC路由。aspx?
我们正在将一个旧的asp.net站点重新写入MVC4 有许多指向我们网站的链接看起来像这样(我们无法控制,但必须支持):Asp.net 对旧页面使用MVC路由。aspx?,asp.net,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-routing,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc Routing,我们正在将一个旧的asp.net站点重新写入MVC4 有许多指向我们网站的链接看起来像这样(我们无法控制,但必须支持): 是否有办法将/page.aspx?id=5的请求获取到路由中,以便我们可以处理该请求,将其传递给控制器/操作,然后从那里处理该请求?在RouteConfig中,添加一个路由(在默认路由之前): 在控制器中,捕获页面id: (MyAspxPageController) 看看吧,你也可以在你的应用程序中引入“区域”——如果你的项目足够大,这会很有帮助。如果你使用它们,它们将反映在
是否有办法将/page.aspx?id=5的请求获取到路由中,以便我们可以处理该请求,将其传递给控制器/操作,然后从那里处理该请求?在RouteConfig中,添加一个路由(在默认路由之前): 在控制器中,捕获页面id: (MyAspxPageController)
看看吧,你也可以在你的应用程序中引入“区域”——如果你的项目足够大,这会很有帮助。如果你使用它们,它们将反映在你的路线上。如果你不需要在应用程序中使用旧路线,我更喜欢使用IIS将旧url重写为新的。好信息。我想补充一点,对于任何想保留原始.aspx文件的人,您需要重命名它,或者按照这些来路由现有的文件/资源。
www.some.com/page.aspx?id=5
routes.MapRoute(
name: "DefaultAspx",
url: "page.aspx",
defaults: new { controller = "MyAspxPage", action = "Index", id = UrlParameter.Optional }
);
public ActionResult Index(int id)
{
// Do whatever needed
//return View();
}