- PR -

getでのaction=の出力

1
投稿者投稿内容
さとし
会議室デビュー日: 2007/01/24
投稿数: 8
投稿日時: 2007-01-24 17:26
ただいまasp.net(MMITは使わない)で
わりと単純な携帯サイトを検討中です。

非常に初歩的な質問かと思いますが、
どうしても分からなかったのでどなたかご教授ください。

●質問内容:
 method="get"(postはダメ)にすると、出力されるHTMLのFormタグでは
 action=test.aspx?dropdownlist1=1&Button1=Button
 の様にクエリストリング付きで出力されるが、これを単に
 action=test.aspx
 の様に出力できないか?

●詳細:
例えば単純な例で
test.aspxにおいて
Button1を押すとDropDownList1の値をLabel1に表示する場合

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = DropDownList1.SelectedItem.Value
End Sub

としますが、postではなくgetにしますと、
今テストしている携帯エミュレータhttp://developers.softbankmobile.co.jp/dp/tool_dl/web/wcv.php
ではFORMのACTION属性が
action=test.aspx?dropdownlist1=1&Button1=Button
として出力され、再度ボタンを押すと
action=test.aspx?dropdownlist1=1&Button1=Button&dropdownlist1=1&Button1=Button
という様ににボタンを押す毎に追加されてしまいます。(IEでは追加されません)
繰り返し押しているうちにクエリストリングが長すぎてエラーになってしまいます。
action属性に前回のクエリストリングを反映させず、単に
action=test.aspxにする方法はないでしょうか?

ちなみにviewstateを残しておくと
「Base-64文字列に無効な文字列が含まれています。」
というエラーが出てしまうので、
Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object
Return Nothing
End Function
Protected Overrides Sub SavePageStateToPersistenceMedium(ByVal viewState As Object)
End Sub
の様にしてViewStateを一切無効にしています。

全く初歩的で知識不足かもしれませんが
よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)