0

私は ASP.NET 4.5 を学んでいて、フレンドリ URL に関するこの投稿に出くわしました。現在、ASP.NET 4.5 を使用していますが、新しい ASP.NET プロジェクトを作成したときに、この機能が既に有効になっており、インストールされていることがわかりました。

次の URL があるとします。

http://somesite.com/Admin/Users/1/2/3

これは次のようにマッピングされます。

http://somesite.com/Admin/Users.aspx?a=1&b=2&c=3

これは の中で問題Users.aspx.csなく動作しますが、 で使用することはできGlobal.asaxますか? 私はそれを試してみましたが、次のメソッドは空の文字列を返します:

string a = Request.GetFriendlyUrlFileExtension();
string b = Request.GetFriendlyUrlFileVirtualPath();
IList<string> c = Request.GetFriendlyUrlSegments();
4

2 に答える 2

0

私は常にわかりやすい URL を使用しています。Web フォーム プロジェクトで行っていることは次のとおりです。

グローバルアサックス

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("About", "About", "~/About.aspx", true);
        routes.MapPageRoute("Add User", "Add User", "~/Add.aspx", true);
        routes.MapPageRoute("Login", "Login", "~/Login.aspx", true);
        routes.MapPageRoute("Map", "Map", "~/Map.aspx", true);
        routes.MapPageRoute("Register", "Register", "~/Register.aspx", true);
        routes.MapPageRoute(
                                       "ViewList",
                                       "ViewList/{c}/{s}", 
                                       "~/ViewList.aspx", 
                                       true
                                     );
        routes.MapPageRoute(
                                       "ViewUser",
                                       "ViewUser/{id}",
                                       "~/ViewUser.aspx",
                                       true
                                     );
        routes.MapPageRoute(
                                     "MyAccount",
                                     "MyAccount/{id}",
                                     "~/MyAccount.aspx",
                                     true
                                   );
    }

クエリ文字列を受け取るページ

string city = RouteData.Values["c"].ToString();
string state = RouteData.Values["s"].ToString();

この構成では、クエリ文字列の値を分割する必要はありません。

于 2013-10-10T20:50:15.547 に答える