- ベストアンサー
URI引数の書き換え
こんにちは。 ASP.NET2.0を使っています。 文字列として渡されたURIの引数を入れ替えたいのですが、 なにかよい方法はないものでしょうか? 例えば、 http://xxxxxx/yyyy.aspx?A=XXXX&B=YYYY といった形である場合に、A=XXXXを入れ替えて、 http://xxxxxx/yyyy.aspx?A=ZZZZ&B=YYYY としたいのです。 このとき、引数にAがなく、 http://xxxxxx/yyyy1.aspx?B=YYYY といった形であった場合にはなにもしません。 また、A以外の引数やパスの部分は任意です。 もちろん、XXXXの部分も不定です。 言語はC#を使っています。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- kero_mio
- ベストアンサー率90% (94/104)
No1, No2さんのやり方に加え、Global.asax のApplication_BeginRequestまたは、IHttpModuleを継承したカスタムクラスを作って、BeginRequestイベントでURLをReWriteできるものを作る必要があります。 HttpContext.Current.RewritePathでできると思いますので この辺りをキーワードにして、試行錯誤、調べながらやって頂けたらと思います。
お礼
情報ありがとうございます。 BeginRequestイベントを使うのは、自分自身のページが呼ばれた際に、引数を加工したい時、ということでしょうか? 今回は自分自身が呼ばれた時ではなくて、他のページを呼ぶ際のURIの加工の方法でした。わかりずらくて申し訳ありません。 ともあれ、ありがとうございました。
- khazad-lefty
- ベストアンサー率44% (296/668)
正規表現なり文字列操作なりで、パラメータを切り出して、 それを入れ替えて再構成するという手順が無難じゃないかと。 切り分けに関しては試行錯誤するしかないかも。
お礼
お返事ありがとうございます。先日もお世話になりました。 こういった場合の文字列操作には、どんな関数があるのでしょうか? C/C++ならstrtok、perlならsplitあたりを使うところなのですが、 .NET/C#の場合にはなにか便利な関数はありますでしょうか?
お礼
URL加工専用のクラスでもないものかと思ったのですが、どうもないようですね。 結局、String.Splitを使って処理できました。 ありがとうございました。