【问题标题】:ASP.NET Renaming web pages pathASP.NET 重命名网页路径
【发布时间】:2016-06-26 01:35:29
【问题描述】:

我是 ASP.NET 的新手。

我创建了一个带有导航栏的网站,其中包含一些链接,并且我已通过 Visual Studio 上的发布工具功能将其发布到我的托管 Web 服务器上。该项目的文件和文件夹在我的 web 服务器上的 public_html 文件夹中

一切都很好,但我想知道是否可以更改地址的路径。

现在我所有的网络表单都在一个名为“WebPages”的文件夹中,该文件夹位于我的项目中。

Webpages > HomePage.aspx
WebPages > Games.aspx
Webpages > Contact.aspx

要转到我的主页,用户必须输入:

www.mywebsite/WebPages/HomePage.aspx

然后他/她可以点击游戏菜单进入 Game.aspx。
对于游戏网页,网址如下所示:

www.mywebsite/WebPages/Game.aspx 

现在我想知道是否有办法更改上述网址,以便取出“网页”。

我创建 WebPages 文件夹的原因是我可以将所有 Web 表单保存在一个文件夹中,将所有 CSS 保存在另一个文件夹中,以保持项目整洁。

【问题讨论】:

    标签: html asp.net


    【解决方案1】:

    添加到您的项目Global.asax,然后添加以下代码(在vb.net 中,目标框架为.net 4.5):

    Imports System.Web.Routing
    
    Private Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
            ' Fires when the application is started
            RegisterRoutes(RouteTable.Routes)
    End Sub
    
    Private Sub RegisterRoutes(routes As RouteCollection)
            routes.MapPageRoute("HomePage", "HomePage", "~/WebPages/HomePage.aspx")
            routes.MapPageRoute("Games", "Games", "~/WebPages/Games.aspx")
            routes.MapPageRoute("Contact", "Contact", "~/WebPages/Contact.aspx")
    End Sub
    

    然后用户可以输入www.mywebsite.com/Contact,例如,将被引导到您的www.mywebsite.com/WebPages/Contact.aspx

    希望这个例子对你有所帮助。

    【讨论】:

    • 谢谢!完美运行。我有另一个问题。不确定我是否应该开始另一个,但这与此有关。如果用户输入我的地址 www.mywebsite.com,我希望他们重定向到主页:“www.mywebsite.com/HomePage”。这可能吗?
    • @Maz 是的,有可能。
    【解决方案2】:

    默认情况下,ASP.NET 将始终尝试将请求中的 URL 匹配到磁盘上的文件。如果未找到匹配项,ASP.NET 会尝试查看是否可以在 RouteCollection 对象中找到与 URL 模式的匹配项。

    要将路由添加到网站,您可以使用 RouteCollection.MapPageRoute 方法将它们添加到 RouteTable 类的静态(在 Visual Basic 中为共享)Routes 属性。您可以在 App_Start 的 RouteConfig 类中执行此操作-

    public static class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            var settings = new FriendlyUrlSettings();
            settings.AutoRedirectMode = RedirectMode.Permanent;
            routes.EnableFriendlyUrls(settings);
    
            routes.MapPageRoute(
                "webpagesGame",
                "Game/",
                "~/webpages/Game.aspx"
                );
    
            routes.MapPageRoute(
                "webpagesHome",
                "HomePage/",
                "~/webpages/HomePage.aspx"
                );
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-04
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多