strID
、strName
、およびstrDate
などのパラメーターとして渡す必要がある3つの値があります。
これら3つのパラメーターをResponse.Redirect()
の別のページにリダイレクトしたいのですが、誰かが正しいクエリ文字列を提供できますか?
(以下は、ウィキペディアのエントリのリンクされたセクションのテキストです。)
クエリ文字列を含む一般的なURLは次のとおりです。
http://server/path/program?query_string
サーバーがそのようなページの要求を受信すると、プログラム(実行するように構成されている場合)を実行し、query_stringを変更せずにプログラムに渡します。疑問符はセパレータとして使用され、クエリ文字列の一部ではありません。
Webページ内のリンクには、クエリ文字列を含むURLが含まれる場合がありますが、HTMLには、Webブラウザがクエリ文字列を生成できる3つの方法が定義されています。
クエリ文字列の主な用途は、Webフォームとも呼ばれるHTMLフォームのコンテンツを含めることです。特に、フィールドfield1、field2、field3を含むフォームが送信されると、フィールドのコンテンツは次のようにクエリ文字列としてエンコードされます。
field1=value1&field2=value2&field3=value3...
field1=value1&field1=value2&field1=value3...
フォームの各フィールドのクエリ文字列には、field = valueのペアが含まれます。 Webフォームには、ユーザーには表示されないフィールドが含まれる場合があります。これらのフィールドは、フォームの送信時にクエリ文字列に含まれます
この規則はW3Cの推奨事項です。 W3Cは、すべてのWebサーバーがアンパサンドセパレーターに加えてセミコロンセパレーターをサポートすることを推奨します[6]。
技術的には、フォームの送信方法がGETの場合、フォームのコンテンツはクエリ文字列としてのみエンコードされます。送信メソッドがPOSTの場合、デフォルトで同じエンコードが使用されますが、結果はクエリ文字列として送信されません。つまり、フォームのアクションURLに追加されません。むしろ、文字列はHTTPリクエストの本文として送信されます。
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz
リダイレクトする前に:
string queryString = Request.QueryString.ToString();
Response.Redirect("page.aspx?"+queryString);
このようにしてみてください。うまくいくはずです
Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));
~mypage.aspx?strID=x&strName=y&strDate=z
これは次を使用して実行できます。
Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
私はAbsoluteUriを使用し、次のように取得できます。
string myURI = Request.Url.AbsoluteUri;
if (!WebSecurity.IsAuthenticated) {
Response.Redirect("~/Login?returnUrl="
+ Request.Url.AbsoluteUri );
次に、ログイン後:
var returnUrl = Request.QueryString["returnUrl"];
if(WebSecurity.Login(username,password,true)){
Context.RedirectLocal(returnUrl);
それは私のためにうまく機能します。