- - PR -
POSTパラメータの送信について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-29 20:03
いつもお世話になっております。
ASP.NETで作成したページから、ある別のページ(既存システムでASP.NETではないページ)にPOSTパラメータを渡したいと考えています。 ASPXファイルにINPUTタグを作成し、hidden属性にパラメータを指定して試してみたところ、FORMタグのaction属性が自動的に自分自身のページを指してしまうため、うまく別のページに渡すことができません。 ASP.NETでPOSTパラメータを別のページに渡すことはできるでしょうか。 | ||||||||
|
投稿日時: 2005-10-29 23:36
<form>タグに runat="server" を書かなければできます。ただしそのFormでは
ASP.NETの様々な恩恵を受けられません。 あとは、submitする瞬間にjavascriptでactionを書き換える、とか。 | ||||||||
|
投稿日時: 2005-10-30 16:36
たぶん、投げるページだけでなく、受け取るページも、「runat=server」を抜く必要があると思います。ViewStateの情報が崩れるから。 ___________________________________________________________________ □ written by Jitta on 2005/10/30 □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2005-Sept.2006 _________________ | ||||||||
|
投稿日時: 2005-10-30 23:31
渡したい 」いうことなのでrunat=serverは考慮してませんでした。 .NETでも下記のようなページ(WebMatrixで作成)にPOSTしたら問題ありませんでした。 #でも昔.NETのページにPOSTしたらエラーになった記憶がある。場合によるかもです。
| ||||||||
|
投稿日時: 2005-10-31 02:27
ご返答ありがとうございます。
送信元のページにサーバ側で実行されるロジックが含まれているので、javascriptで書き換える方法を選択してみました。 すると、受け取るページ(既存システムでASP.NETではないページ)がASPの場合は問題なくPOSTパラメータを受け取ることができたのですが、受け取るページを.NETで作成して試してみたところ、「System.Web.HttpException: データを検証できません。」のエラーが発生してしまいました。受け取るページの「runat=server」を外しても現象は変化しませんでした。 送信元ページのVIEWSTATEの情報?が受け取るページに送られてしまっているからでしょうか…。 | ||||||||
|
投稿日時: 2005-10-31 10:06
ViewStateは同一ページのみで有効です。したがって異なるページにPOSTすると、改竄されたと思われ、提示されたようなエラーが発生します。 PageディレクティブにenableViewStateMac="False"と記述すればこのようなチェックが行われなくなりますので、エラーは発生しないと思います。 ただ、ページ間のデータ渡しということであれば、他の方法も検討されてみたらいかがでしょうか? | ||||||||
|
投稿日時: 2005-10-31 14:52
ありがとうございます、enableViewStateMac="False"の記述でエラーは発生しなくなりました。 このようなページ間での受け渡しをおこなっている理由として、受け取り先のページがASP.NETとは限らないということが理由にあります。その結果POSTパラメータで送信することになったのですが、他によい方法があるのでしょうか・・・。 | ||||||||
|
投稿日時: 2005-11-01 14:40
良い方法かは分かりませんが,JavaScriptを使用するのはダメでしょうか?
例えば,
スクリプト内のinputタグのnameとvalueを目的の値にかえたらうまくいくような気もしますが・・・ ただ,むりやりResponse.Writeするのが良いとは思えませんけど(^^; [ メッセージ編集済み 編集者: Katze 編集日時 2005-11-01 14:50 ] |