在 ASP .net c# 中路由多个页面
Routing multiple pages in ASP .net c#
我正在尝试传送 2 个页面,但它只传送第一个已注册的页面。这是代码:
static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("DynamicCity", "{dCity}.aspx", "~/DynamicCity.aspx");
routes.MapPageRoute("DynamicPage", "{Description}.aspx", "~/DynamicPage.aspx");
}
为什么只有路由 DynamicCity?
当两条路由具有相同的 {parameter}.aspx
形式时,路由系统应该如何知道两条路由之间的区别?它不能。由于路由是按顺序评估的,因此第一个优先。
我不确定这是否对您有帮助,因为您没有指定您的 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");
}
查看 this answer 了解其他想法。
我正在尝试传送 2 个页面,但它只传送第一个已注册的页面。这是代码:
static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("DynamicCity", "{dCity}.aspx", "~/DynamicCity.aspx");
routes.MapPageRoute("DynamicPage", "{Description}.aspx", "~/DynamicPage.aspx");
}
为什么只有路由 DynamicCity?
当两条路由具有相同的 {parameter}.aspx
形式时,路由系统应该如何知道两条路由之间的区别?它不能。由于路由是按顺序评估的,因此第一个优先。
我不确定这是否对您有帮助,因为您没有指定您的 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");
}
查看 this answer 了解其他想法。