Web フォームを使用して、ASP.Net で最初のサイトを開発しようとしています。
いくつかのコントロールと TextBox コントロールを含むフォームがあります。今はGET
リクエストを使用しています。ユーザーがフォームを送信すると、ブラウザーは長い URL を取得することを期待します。
http://mysite.com/search.aspx?__VIEWSTATE=%2FwEPDwUJNTE2NjY5jMY4D2QWAgICD2QWAgIDDW8wAh4EVGV4dAUBMWRkZKthQ0zeIP5by49qIHwSuW6nOj8iLTdoCUzpH369xyg8&__EVENTVALIDATION=%2FwEWAwLnrcHhBQLs0bLrBgKM54rGBjGtX5fJOylLy4qRbt6DqPxO%2FnfcMOkHJBRFqZTZdsBD&TextBox1=sfs&Button1=Button
彼の入力が の単語sfs
である場合TextBox1
。だから私は彼に返事を返す必要があります。次のようなユーザーフレンドリーな URL でこの応答を表示したいと思います。
http://mysite.com/search.aspx?TextBox1=sfs
また
http://mysite.com/sfs
また
http://mysite.com/search/sfs
どうやってやるの?Response.Redirect を使用すると、最初に 302 が返され、その後で短い URL が処理されます。Server.Transfer は URL を変更せず、ユーザーはブラウザーに醜い長い URL を表示します。
4.0 フレームワークに登場した経由で解決できるように思えますRouteCollection.MapPageRoute
が、どのように使用できるかは不明です。
どんな助けでも大歓迎です。
アップデート。POST
の代わりに使用しても問題ありませんGET
。しかし、この方法ではURLは常に次のようになりますhttp://mysite.com/search.aspx
更新 2。フォームはサーバー コントロールである必要があり、送信とテキスト ボックス以外の別のコントロールがあります。それは良いことです (ただし、このパラメーターがブラウザーに表示される URL に表示されない場合は必要ありません。