101

strID、 、strNameなどのパラメーターとして渡す必要がある 3 つの値がありますstrDate

これら 3 つのパラメーターを の別のページにリダイレクトしたいのResponse.Redirect()ですが、正しいクエリ文字列を教えてもらえますか?

4

6 に答える 6

124

クエリ文字列

(以下は、ウィキペディアのエントリのリンクされたセクションのテキストです。)

構造

クエリ文字列を含む一般的な URL は次のとおりです。

http://server/path/program?query_string

サーバーがそのようなページの要求を受け取ると、プログラムを実行し (そうするように構成されている場合)、変更されていない query_string をプログラムに渡します。疑問符は区切り記号として使用され、クエリ文字列の一部ではありません。

Web ページ内のリンクには、クエリ文字列を含む URL が含まれている場合がありますが、HTML では、Web ブラウザがクエリ文字列を生成できる 3 つの方法が定義されています。

  • ... 要素による Web フォーム
  • 構成要素の ismap 属性を介したサーバー側のイメージ マップ
  • 廃止された要素によるインデックス付き検索

ウェブフォーム

クエリ文字列の主な用途は、Web フォームとも呼ばれる HTML フォームのコンテンツを含めることです。具体的には、フィールド field1、field2、field3 を含むフォームが送信されると、フィールドの内容は次のようにクエリ文字列としてエンコードされます。

field1=value1&field2=value2&field3=value3...

  • クエリ文字列は、一連のフィールドと値のペアで構成されます。
  • 各ペア内で、フィールド名と値は等号で区切られています。値が空の文字列の場合、等号は省略できます。
  • 一連のペアは、アンパサンド '&' (または HTML に埋め込まれ、... によって生成されない URL の場合はセミコロン ';'; 以下を参照) で区切られます。明確な標準はありませんが、ほとんどの Web フレームワークでは、複数の値を 1 つのフィールドに関連付けることができます。

field1=value1&field1=value2&field1=value3...

フォームの各フィールドについて、クエリ文字列にはフィールド=値のペアが含まれています。Web フォームには、ユーザーには表示されないフィールドが含まれる場合があります。これらのフィールドは、フォームが送信されるときにクエリ文字列に含まれます

この規則は W3C 勧告です。W3C は、すべての Web サーバーがアンパサンド セパレータに加えてセミコロン セパレータをサポートすることを推奨しています[6]。これにより、HTML ドキュメント内の URL で application/x-www-form-urlencoded クエリ文字列をエンティティ エスケープ アンパサンドなしで使用できるようになります。

技術的には、フォーム送信メソッドが GET の場合、フォーム コンテンツはクエリ文字列としてのみエンコードされます。送信方法が POST の場合、デフォルトで同じエンコーディングが使用されますが、結果はクエリ文字列として送信されません。つまり、フォームのアクション URL に追加されません。代わりに、文字列は HTTP 要求の本文として送信されます。

于 2009-04-07T07:49:59.460 に答える
35
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz

リダイレクトする前に:

string queryString = Request.QueryString.ToString();

Response.Redirect("page.aspx?"+queryString);
于 2009-04-07T07:50:13.437 に答える
16

このようにしてみてください。うまくいくはずです

Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));
于 2013-04-10T11:14:46.117 に答える
9
~mypage.aspx?strID=x&strName=y&strDate=z
于 2009-04-07T07:48:57.387 に答える
6

これは、次を使用して実行できます。

Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
于 2016-05-31T02:56:58.217 に答える