【问题标题】:Routing multiple pages in ASP .net c#在 ASP .net c# 中路由多个页面
【发布时间】:2015-11-08 15:23:42
【问题描述】:

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

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

为什么它只有一个路由DynamicCity

【问题讨论】:

    标签: c# asp.net routes url-routing asp.net-routing


    【解决方案1】:

    我不确定这是否会对您有所帮助,因为您没有指定您的 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】:

      当两个路由的{parameter}.aspx 格式相同时,路由系统应该如何知道它们之间的区别?它不能。而且由于路线是按顺序评估的,因此第一个具有优先级。

      【讨论】:

      • 我不能路由 2 个不同的站点吗?
      • @Jamil 我什至不知道您所说的“路由 2 个不同的站点”是什么意思。
      • 我不认为我问了太多困难的问题。
      • @Jamil 是的,你做到了。因为就像我在上一条评论中所说的那样,我不知道“路由 2 个不同的站点”是什么意思。简单地说这不是一个困难的问题并不能解释你的意思。您需要具体说明您要完成的工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2012-04-30
      • 2011-11-17
      • 1970-01-01
      • 2019-01-01
      相关资源
      最近更新 更多