通常、URL書き換えを使用してコンテンツIDをWebサイトに渡します。
Foo.1.aspx
に書き換えます
Foo.aspx?id=1
特定のアプリケーションでは、複数のIDを1つのページに渡す必要があるため、これを受け入れるように書き直しました。
Foo.1,2,3,4,5.aspx
これはCassini(Visual Studioの組み込みアドホックWebサーバー)では正常に機能しますが、IISを実行しているライブサーバーで試してみると、「Internet ExplorerでWebページを表示できません」と表示されます。これはIIS制限ですか?カンマの代わりにダッシュまたはアンダースコアを使用するだけですか?
デフォルトでは、URLルーティングは最初にファイルが存在するかどうかを確認し、ファイル名にコンマが有効ではないことを思い出します。 IISには、処理のためにasp.netに到達する前に要求を中止するレガシーコードが含まれている場合があります。
Scott Hanselmanの ブログ投稿 はこれについて少し語っており、あなたに関連があるかもしれません。
一般的なコメントとして:URL書き換えは通常、URLをわかりやすく覚えやすいものにするために使用されます。
~/page.aspx?id=1,2,3,4
は~/page/1-2-3-4.aspx
より悪くも良くもない:どちらも使いにくいので、なぜ余分な努力をするのか?できるからといって、新しいURLフォームを作成しないでください。ユーザー、ヘルプデスク、その他の開発者は混乱するだけです。
URLの書き換えは変換に最適です
~/products/view.aspx?id=1
~/products/category.aspx?type=beverage
に
~/products/view/1
~/products/category/beverage
URLで%2c
を使用してコンマを置き換えてみてください。
ConroyPによる回答に加えて、RFCへの別の引用が以下にあります。いくつかの安全でない文字に注意していますが、コンマには言及していません(コンマが安全であることを示唆しています)。
文字は、いくつかの理由で安全ではありません。スペース文字は安全ではありません。URLが文字起こしまたはタイプセットされたり、ワープロプログラムの処理が行われたりすると、重要なスペースが消えたり、意味のないスペースが導入される可能性があるためです。文字「<」および「>」は、フリーテキストのURLの区切り文字として使用されるため、安全ではありません。一部のシステムでは、引用符( "" ")を使用してURLを区切ります。文字"# "は安全ではなく、World Wide Webおよび他のシステムでURLをフラグメント/アンカーから区切るために使用されるため、常にエンコードする必要があります文字「%」は、他の文字のエンコードに使用されるため安全ではありません。ゲートウェイや他のトランスポートエージェントがこのような文字を変更することがあるため、他の文字は安全ではありません。これらの文字は「{」、「} "、" | "、"\"、" ^ "、"〜 "、" ["、"] "、および" `"。
安全でない文字はすべて、URL内で常にエンコードする必要があります。たとえば、通常はフラグメントまたはアンカー識別子を処理しないシステムでも、文字「#」をURL内でエンコードする必要があるため、URLを使用する別のシステムにURLをコピーしても、変更する必要はありません。 URLエンコード。
仕様に従って、パス、クエリ文字列、およびフラグメントにカンマを使用できます。 IEが仕様に準拠していない場合でも驚かないでしょう。Claudiuが示唆するようにエンティティを試してみてください。
フロントコントローラーを設置した場合、次のようなことができます。
index.aspx?c=Foo/1/2/3/4
フロントコントローラーは、メソッド名とそれに渡すパラメーターを取得します。これは最近ではかなり一般的な手法です。
複数のIDをacceptにする正しい方法は次のとおりです。
Foo.aspx?id=1;id=2;id=3;id=4;id=5
これがターゲットであることに注意してください。 URLを書き換える場合、ソースをどのように表示するかについて、独自のルールをある程度設定できます。
StackOverflowでもこれを学ばなければなりませんでした。この質問をご覧ください:
文字列から整数を分割
問題はコンマでした。 IISがローカルホストで問題なく表示できるため、IEに問題があった(IEではない)と推測しています。
とにかくURL形式をこれに変更しただけで、うまく機能します。
Foo.1-2-3-4-5.aspx