在asp.net c#中路由多个页面

本文关键字:路由 asp net | 更新日期: 2023-09-27 18:07:59

我正在尝试路由2页,但它只路由第一个注册的页面。下面是代码:

 static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("DynamicCity", "{dCity}.aspx", "~/DynamicCity.aspx");
    routes.MapPageRoute("DynamicPage", "{Description}.aspx", "~/DynamicPage.aspx");
}

为什么它只有路由DynamicCity?

在asp.net c#中路由多个页面

我不确定这是否会帮助你,因为你没有指定你的URL方案是什么。但是,如果您只想将/DynamicCity.aspx发送到~/DynamicCity.aspx页面,并将所有其他页面路由到它们自己的名称,您可以这样做:

static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("Page", "{pageName}.aspx", "~/{pageName}.aspx");
}

但是,既然ASP。.NET无论如何都会这样做,我不确定你对。NET路由的期望。

通常,人们使用MapPageRoute从URL中删除.aspx扩展(如图所示)或完全更改URL。

static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("Page", "{pageName}", "~/{pageName}.aspx");
}

当两个路由都具有相同的{parameter}.aspx形式时,路由系统应该如何知道两个路由之间的区别?它不能。由于路由是按顺序计算的,所以第一个具有优先级。