2

実際の URL を取得してルート自体で使用する必要があるプロジェクトに取り組んでいます。私が見ているもの、読んでいるもの、テストしているものはすべて、ルートがサイト URL の後にアイテムを取得できるようにします。これは私が試したことであり、サイトが空白であると単純に言うたびに (これはおそらく空白のデフォルトが原因です)。ルートでルート URL も使用できるようにすることについて、骨の折れる点を教えていただけますか? 目標は、URL を処理し、View 内に入ると別のルートに私をルーティングする 1 つの Web サイトです。

これは私が試したコードですが、ローカルホスト以外では運がありません

            routes.MapRoute(
            "PageRouter",
            "{site}/{*url}",
            new { controller = "PageRouter", action = "RoutePage", site = "", url = "" }
        );

よろしくお願いいたします。前もって感謝します

4

2 に答える 2

0

コントローラのアクション内でHttpContext.Request.RawUrlを使用するのはどうですか。ここで何かが足りないかもしれません。読みたいURLはどこから来ていますか?現在のページですか、それとも別のページですか?

于 2009-03-09T07:33:42.663 に答える
0

ネイサンの答えは答えの一部です。HttpContext.Request.RawUrl は、この情報へのアクセスを許可しますが、代わりに Global.asax.cs ファイルにアクセスします。これは Application_BeginRequest イベントで行われます。しかし、トリック (そして、誰かがこれを行うためのより洗練された方法を知っている場合はコメントしてください) ですが、使用されている URL を残りのルート パスに挿入して、MapRoute メソッドで取得できるようにします。したがって、「http://subdomain.domain.net/url」サイトは「 http://subdomain.domain.net/subdomain.domain.net/url 」と表示されますそのため、MapRoute コマンドの {site} 部分で取得できます。これはユーザーには表示されませんが、受信した URL に基づいてアプリ内で決定を下すことができます。これは正気ですか?ルート URL を吸収するために、これがクレイジーな方法であると思われる場合は、コメントを歓迎します。

于 2009-03-10T22:16:52.877 に答える