1

URL の 2 つのパラメーターを処理するために、global.asax で次のルーティング パスを定義しています。

routes.MapRoute(
                "Default", // Route name
                "{page}/{th}", // URL with parameters
                new { controller = "Home", action = "Index", page = UrlParameter.Optional, th = UrlParameter.Optional } // Parameter defaults
            );

最初のパラメータは別の Web サイトの URL、つまり www.othersite.com/about/ です。

スラッシュを %2f にエンコードしても、URL を正しくルーティングできません。私はこのようなものを使いたい:

http://{mywebsite}/www.othersite.net%2fabout%2f/{parameter2}

上記のように URL を読み取れるようにするため、Base64 エンコーディングは使用したくありません。

MVC3を使用しています。

ありがとう

4

1 に答える 1

3

following blog postScott Hanselmanの を見て、考えられる回避策をいくつか説明しています。しかし、結論は次のとおりです。

リクエスト パスでクレイジーなものを取得するためのこのすべての努力の後、値をクエリ文字列の一部として保持するだけのほうが簡単で、クリーンで、より柔軟で、より柔軟であることに言及する価値があります (この記事の最初の WAY を覚えていますか?)。安全。

したがって、基本的には、おそらく負けそうな戦いで IIS と戦おうとするよりも、URL エンコードされたクエリ文字列パラメーターを使用する方がよいでしょう。

于 2013-01-31T08:51:44.217 に答える