• ベストアンサー

ASPで画面間のパラメタ受け渡し

こんばんは。ASP初心者です。 ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • hequil
  • ベストアンサー率65% (242/372)
回答No.1

1. Cookieを使う 2. 画面遷移を postで行い、hidden項目に値をセットする (要JavaScript) 私は面倒なのでセッション変数使ってますが、必要なくなればセッションをクリアすれば良いだけだと思います。 Session.Contents("hoge") = Empty

その他の回答 (2)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

Server.Transferとか

参考URL:
http://www.microsoft.com/japan/msdn/library/ja/jpiis/iishelp/iis/htm/asp/vbob9waa.asp
  • sawagani
  • ベストアンサー率73% (19/26)
回答No.2

最良の方法かは分からないですが、 情報量が少なければ [1].Response.Redirectで指定するURLに、パラメータを付加   遷移前 Response.Redirect "aaa.asp?hoge=hogehoge   遷移後 Request.QueryString("hoge") で取得 [2].クッキーを使用 遷移前 Response.Cookies("hoge") = "hogehoge" 遷移後 Request.Cookies("hoge") で取得 といった方法があります。 情報量が多い時は、 [3].遷移前のASPでサブミット用のフォームを出力し、ドキュメントのonloadイベントでサブミット なんてことを自分ではよくやりました。 <body onload="document.forms[0].submit();"> <form method="post" target="aaa.asp"> <input type="hidden" name="hoge" value="hogehoge"> </form> ちなみに、 [1]はパラメータの量に制限あり [2]はパラメータの量に制限あり+クッキーの使用を禁止してると使用不可 [3]はスクリプトの使用を禁止していると使用不可 です。

関連するQ&A

  • asp(vbscript)でテキストの値を送信する

    <% dim TEST TEST = Request.Form("TEST")'別ページから値を取得 If TEST = FALSE Response.Redirect "http://localhost/~" '値を送信してきた所へ飛ぶ End If %> Response.Redirectにて 値を送信してきたフォームへ飛んだ時に 飛ばしてきたフォームのテキストボックスへ 同じ値を保持したいのですが… ★要は遷移前の入力情報をそのまま表示させたいのです。★ どのように値を返して、また取得して良いのか 方法が分かりません。

  • 動的に作成したボタン(リンク)押下で画面遷移

    ASPで開発をしているのですが、初心者故、頓珍漢なことを言っているかも しれません。 ご指摘いただければありがたいです。 DBから値を取得して、データを動的に作成したテーブルに一覧表示しています。 各行には、編集・削除のボタンがあって、それを押すと、編集、または削除用の 画面へ遷移する仕組みにしたいと思っています。 テーブルについては、レコードセットで取得した値をループする時に、 Response.Writeで、<tr><td>rec("カラム名")</td></tr>のようにタグを書いています。 (recはレコードセットです) このページを仮にASP1とすると、ボタンを押したら、その行の値を保持して、 編集用のページ(ASP2とします)へ遷移したいのですが、値の保持の方法が わからず困っています。 Request.Formとかで、遷移先のページで値を受け取れるようですが、 各行ごとの値をどうやって詰めてあげたら良いのでしょうか。 稚拙な説明で申し訳ないのですが、ご教授ください。 また、詰めたい値は、2、3個ですので、セッション?とかクッキーを使うような ものではなく、可能な限りシンプルな方法ですとありがたいです。 宜しくお願いいたします。

  • ASP.netにて質問です。

    WEB開発が初心者でいろいろ悩んでいます。 ・ASP.net2.0 ・C# 現在、ログインページとメインページがあります。 今後、ページが増えていくので、 メインページ内で処理していたことを全ページで使用できるように APP_code配下へクラスを作成し、処理を移植しました。 そこで、メインページのaspx.csでは問題なく出来ていたが、APP_code配下のcsでは出来なくなってしました。 [内容] object ses = Session["hoge"]; ←この処理が出来なくなってしまったので、下記に変更 object ses = System.Web.HttpContext.Current.Session["hoge"];  ⇒結果は「NullReferenceExceptionはユーザーコードによってハンドルされませんでした。」   となってしまいます。   System.Web.HttpContext.Current.Session["hoge"]の結果はNullなのが問題だとは思うのですが、   元のaspx.csで実装されていた時はNullであっても特に問題はありませんでした。 また、Response.Redirect("hoge.aspx")についても System.Web.HttpContext.Current.Response.Redirect("hoge.aspx") と修正したが、hoge.aspxへリダイレクトしません。 対処方法を教えて頂きたく思います。

  • Response.Redirectで引数2つの時は?

    Response.Redirectで引数2つの時は? Response.Redirectで引数2つ使う場合はどう表現すればいいでしょうか 一つの場合は下記で上手くなるのですが 送る方 1.asp Response.Redirect "2.asp?para=パラメータ" 受ける方 2.asp para = Request("para")

  • ASPとASP.netの連携について

    ASPで作られたシステムとASP.netで作るシステムの 連携について、ASP初心者で困っています。ご教授ください。 (1)ASPからASP.netの画面遷移はできますか? 可能ならば、どのようにすればできますか? (2)ASPとASP.netではセッションの共有はできない (オーバーヘッドがしやすい等問題があるためしない方がいい)と  いうのを知りました。  画面遷移時に、パラメータを渡したいのですが、  DBに格納という方法以外に、たとえば、  JSPのsubmitで値を飛ばすように、ASPで飛ばしたものを  ASP.netでgetするようなことはできますか? よろしくお願いします。 環境は、OSがWin2000、WEBサーバがIISです。

  • ASPで別ページにPOSTで送信したい。

    お疲れさまです。2回目の質問になります。皆様よろしくお願いします。 行いたい事は タイトル通り 別ページにPOSTで送信を行いたいのです。 GET送信はResponse.Redirectで送信できますが パラメータが出てしまいます。 ASPの次のページはASPではないのでASP間のパラメータ渡しは出来ません。 なにとぞ皆様の良い知恵をお貸し下さい。サーバーはNT4.0です。 よろしくお願いします。

  • ASP.NET による画面遷移で質問です。

    はじめまして。 ASP.NETのC#で開発を行っていますが、画面遷移で困っています・・・ A画面 ⇔ B画面 ⇔ C画面 と遷移する場合と、 A画面 ⇔ C画面 へ遷移する場合があり、戻り先が操作により異なります。 その場合、遷移元の情報はどのように保持していいのでしょうか? 現在は、ページ情報(各種コントロール情報・遷移元画面名)クラスを作り、Listに格納しセッションにて保持しています。 しかしなが、使い勝手が悪く(作り方が悪いのか・・・)困っています。 一般的にはこのような画面遷移のシステムを作る際はどのように作成するものなのでしょうか?宜しくお願いします。

  • ASPからのEXEファイル起動

    VBScriptで作ったASPからVisualBasicで作ったEXEファイルを起動するプログラムを作りました。 そこでEXEファイルを起動する際にASPで持ってる情報(ユーザID)を 起動をかけるEXEに渡したいのですがうまくいきません。 DOS画面より >C:\abc.exe 10 とうつとパラメータ 10が引きわたり正常に起動します。 ところがWEBから Response.Redirect("C:\abc.exe 10")とやると ページが見つかりませんとなります。 ちなみに Response.Redirect("C:\abc.exe")だと パラメータの受け渡しはありませんが起動はできます。 何がいけないんでしょうか・・・? ご教授願います。

  • データの受け渡し

    A.aspで入力されたFormデータをGETで送信し B.aspで内容を判断し、C.aspまたはD.aspにデータを受け渡す。 という事を行いたいと考えています。 B.aspのソースは下記の感じです。 If Request.QueryString("Add") = "C" THen Response.Redirect "C.asp" Else Response.Redirect "D.asp" End If C及びDへデータを受け渡すには、どのようにしたらよいでしょうか? また、今回GETを利用していますがPOSTを利用して同様な事は出来るのでしょうか? よろしくお願い致します。

  • データ受け渡し時の維持

    いつもお世話になっております。 現在A.aspからB.aspにデータを渡したいと考えているのですが、その間にユーザ認証の処理"C.asp"を入れているため、上手く渡りません。 Aで送ったデータをCが処理している間も持ち続け、Bに渡したいのです。Cはシステム上、他のファイルも参照するファイルなので、できればAもしくはBのみに手を加えることで解決したいと考えております。 現在の状況として、ユーザ認証直後は真っ白なBの画面が出て、再度Aに戻ってもう一度Bに飛ぶと認証済みのため、Aのデータ"hoge"がBにきちんと表示されます。 簡単で申し訳ありませんが、下記にソースを書きます。 何かお気づきの点があれば、ご教授ください。 宜しくお願い致します。 ※A.aspの内容 <% Response.Write "<a href=""B.asp?key=hoge""> B.aspへ</a>" %> ※B.aspの内容 <!--#include VIRTUAL="C.asp"--> <html> <head> <%Dim key2 key2 = Request.QueryString("key") %> </head> <%Response.Write url2%> </HTML> ※C.aspの内容 (長いので抜粋です) <%Option Explicit%> <%Response.Buffer = True Sub chkUser_Main() If chkUser_VerifyAuthorization() = False Then Response.Clear Session.Contents("LoginCaller") = Request.ServerVariables("SCRIPT_NAME") Response.Redirect "/login.asp" Response.End End If End Sub Function chkUser_VerifyAuthorization() chkUser_VerifyAuthorization = False Dim tUid, tPswd tUid = Session.Contents("SessionKey") tPswd = Session.Contents("Password") If (tUid = "") Or (tPswd = "") Then Exit ...続く

専門家に質問してみよう