2016-06-26 27 views
0

私はASP.NETを初めて使用しています。ASP.NET Webページの名前を変更するパス

私は、いくつかのリンクを持つナビゲーションバーを持つWebサイトを作成しました。私はそれをビジュアルスタジオの公開ツール機能を通じてホスティングWebサーバーに公開しました。プロジェクトのファイルとフォルダは、Webサーバ上のpublic_htmlフォルダにあります。

すべては問題なく機能していますが、アドレスのパスを変更できるかどうかは疑問です。

今、私のすべてのWebフォームは、私のプロジェクトにある "WebPages"というフォルダにあります。

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

、私のホームページに移動し、ユーザが入力する必要があります。

www.mywebsite/WebPages/HomePage.aspx 

を彼/彼女はその後、Game.aspxに行くために、ゲームメニューをクリックすることができます。ゲームWebページの
、Webアドレスは次のようになります。「ウェブページ」が取り出されるように、上記のウェブサイトのアドレスを変更する方法があるかどう

www.mywebsite/WebPages/Game.aspx 

は今、私は疑問に思って。

なぜWebPagesフォルダを作ったのかという理由は、すべてのWebフォームを1つのフォルダに保存し、すべてのCSSを別のフォルダに保存してプロジェクトをきれいに保つことができるからです。

答えて

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につながることになります。

この例があなたに役立つことを願います。

+0

ありがとうございます!完璧に動作します。私は別の質問がある。私は別のものを開始する必要があるかどうかは分かりませんが、これはこれに関連しています。ユーザーが自分のアドレスwww.mywebsite.comを入力した場合、それらをホームページ(www.mywebsite.com/HomePage)にリダイレクトする必要があります。それは可能ですか? – Maz

+0

@マーズはい、可能です。 – nelek

0

デフォルトでは、ASP.NETは要求のURLをディスク上のファイルと常に一致させようとします。一致するものが見つからない場合、ASP.NETはURLのパターンと一致するものがRouteCollectionオブジェクトに存在するかどうかを確認します。

ルートをWebサイトに追加するには、RouteCollection.MapPageRouteメソッドを使用してルートをRouteTableクラスの静的(Visual Basicでは共有)プロパティに追加します。これを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" 
      ); 
    } 
} 
関連する問題