重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

WebフォームからPOSTメソッドで送信したパラメータを、.NETのスマートクライアントに引き渡す方法を考えています。

ノータッチデプロイメントのスマートクライアントはどうやらクエリストリングを受け取ることはできるようですがPOSTが受け取れません。

現在試しているのはいったん、クエリストリングをASP.NETで受け取り、クエリストリングに変換してスマートクラインアントのページに転送するやりかたです。

この転送をサーバ内で処理しようとする(つまりServer.Transferを用いる)とブラウザはダウンロードされるのが.exeだとは気づかすテキストとして扱ってしまいます。Response.Ridirectを用いるとうまくいくのですが、これは結局クライアントがGETメソッドを投げてしまうので、できれば避けたい状況です。

なにかいい方法はないでしょうか?

A 回答 (2件)

ノータッチデプロイメントは、クライアントで動くので


サーバ側のメモリ上にあるSession, Application, Cacheには
アクセスできないでしょう。

ノータッチデプロイメントがサーバ側のデータを受け取りたい場合は、
Webサービスを使うのが普通です。
    • good
    • 0

Web用FormがASP.NETで作られているなら、


Sessionや、Application、キャッシュなどに一時保存してから、Response.Redirect という方法もありますが、
どうしてもPOSTにこだわりたいといったところでしょうか?

あまり自信はないですが、恐らくSession、Cache、Applicationで
のどれかでスマートクライアントに値の引渡しができた記憶が
あるので試して頂けると幸いです。

Webフォームの画面が普通のHTMLなのか、ASP.NET用Formなのか
記載がなかったのと、スマートクライアント側の使用言語が記載されていなかったのでVB.NETとC#と2種類の例で示しておきます。

Webフォーム側(VB.NETの場合)
System.Web.HttpContext.Current.Cache("Data") = 受け渡しデータ
System.Web.HttpContext.Current.Session("Data") = 受け渡しデータ
System.Web.HttpContext.Current.Application("Data") = 受け渡しデータ
Response.Redirect "スマートクライアントのページ"

スマートクライアント側(VB.NETの場合)
System.Web.HttpContext.Current.Cache("Data") で受け取る
System.Web.HttpContext.Current.Session("Data")で受け取る
System.Web.HttpContext.Current.Application("Data")で受け取る


Webフォーム側(C#の場合)
System.Web.HttpContext.Current.Cache["Data"] = 受け渡しデータ
System.Web.HttpContext.Current.Session["Data"] = 受け渡しデータ
System.Web.HttpContext.Current.Application["Data"] = 受け渡しデータ
Response.Redirect("スマートクライアントのページ")


スマートクライアント側(C#の場合)
System.Web.HttpContext.Current.Cache["Data"] で受け取る
System.Web.HttpContext.Current.Session["Data"]で受け取る
System.Web.HttpContext.Current.Application["Data"]で受け取る
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!