0

私のサイトでは、URL パスにエンコードされた引用符 (%22) が含まれていると、「パスに不正な文字が含まれています」というエラーが発生します

次のように検索 URL を指定します。

www.site.com/search/%22ビタミン+C%22

%22 はエンコードされた引用符です

私は Asp.Net URL ルーティングを使用しており、ルートは次のように指定されています: "search/{searchTerm}"

Context["searchTerm"]を取得してデコードすると、上記の例は" Vitamin+C" [引用符を含む]になります。

Asp.Net は、URL に不正な文字があると考えているようです。テキストを URL エンコードしているときに、その理由がわかりません。

Asp.Netに文句を言わずに引用符をエンコードするにはどうすればよいですか? 多くの人が単語をグループ化するために引用符を使用しますが、私はこの「スマート検索」を許可したいと考えています。

4

2 に答える 2

1

自由形式の検索用語の場合、URLチャンクの代わりにQueryStringパラメーターを使用する必要があります。構造化検索(有効なURL要件に準拠する名前のカテゴリの限定リスト、または郵便番号による検索)がある場合は、使用しているURL構造を問題なく使用できます。querystringパラメーターには、引用符を含め、必要なものをエンコードして配置できます。

于 2009-06-04T22:05:08.127 に答える
0

HttpServerUtility.UrlEncode メソッドを確認してください

于 2009-06-05T06:02:18.850 に答える