Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 对旧页面使用MVC路由。aspx?_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Asp.net Mvc Routing - Fatal编程技术网

Asp.net 对旧页面使用MVC路由。aspx?

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) 看看吧,你也可以在你的应用程序中引入“区域”——如果你的项目足够大,这会很有帮助。如果你使用它们,它们将反映在

我们正在将一个旧的asp.net站点重新写入MVC4

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


是否有办法将/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();
}