- - PR -
HiddenにあるViewStateを表示しない方法について
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-24 11:57
はじめまして、Gunです。いつも拝見させていただき、大変参考になっております。
ASP.Netの開発において、 <input type="hidden" name="__VIEWSTATE" value="***"> と言うこの1行を表示させない方法、と言うのはあるのでしょうか。 Machine.Config、Web.Configそれぞれに、 enableViewState=falseとし、ページのコードにも、 Page.EnableViewState = False Protected form1 As System.Web.UI.HtmlControls.HtmlForm form1.EnableViewState = False と記載しても表示されてしまいます。 これはどうしても表示されるものなのでしょうか。 どなたかご存知の方、いらっしゃいましたらご教授のほど、よろしくお願い申し上げます。 | ||||||||||||||||
|
投稿日時: 2005-01-24 15:27
http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp03/entwebapp03_02.html
ここにViewStateデータをSessionに回避し、 サーバサイドでViewStateを保持する方法が 書かれています。参考程度に。。。。 もともとサーバーでの負荷を減らし クライアント数増やす為にViewStateが存在するのであれば Sessionを使えばいいとは思いますが まぁSessionあんまり使いたくない という気持ちはわかりますねー。 注意事項も書いてあるので それもふまえて使うか決めたほうがいいと思います。 SessionでもいいならSession使う手もありますし。。。 | ||||||||||||||||
|
投稿日時: 2005-01-24 17:54
ご返答、ありがとうございます。
Sessionに格納しても、Hidden属性としてページ上に残ってしまうのですね。 確かにSessionを使ってしまうのは要求定義上問題ありますし…。 もう少し実装方法を検討したいと思います。 どうもありがとうございました。 | ||||||||||||||||
|
投稿日時: 2005-01-24 22:24
> 確かにSessionを使ってしまうのは要求定義上問題あります
差し支えなければ、どのような問題ですか? また、SessionもViewStateも使わない、それでどうやってWebアプリケーションを作成するのでしょう?大変興味深いので、是非お教えください。 _________________ | ||||||||||||||||
|
投稿日時: 2005-01-27 10:32
お返事遅れたこと、お詫び申し上げます。
ただいま、開発の標準化の策定等を行っておりまして、Sessionを使わないとなると携帯端末においては使えなかったり、Webサーバーをラウンドロビンのような環境にすると、Session管理のための仕組みを組み込まなければならなかったりします。 ViewStateは暗号化は出来るものの、クライアントがいやがったり、私も使うのに抵抗があります。あとイベントドリブンで書くのもメリットがあるとは思えません。 イベントドリブンで書くと、一度、自身にサブミットを行い、処理後、次のページへRedirectやExecuteを行い、IISにログが二重に吐き出されます。無駄なRequestやログが残ることによって、詳細なログ解析と、それをもとにSearch Engine Marketingを綿密に計画する、と言う要求は満たされません。 ASP.Netを使う理由として、豊富なクラス、DBキャッシュ、ロジックのクラス化等が容易な故、選定しました。テキストボックスの状態保持の方法についても、自社で作成するユーザーコントロールにて解決しようと考えております。 本来のASP.Netのあり方ではない、と承知の上、研究を行っている次第です。 以上です。試行錯誤に自分なりに考えてはみてるのですが、明らかに君間違ってるよ、などございましたら、貴重な意見ですゆえ、お聞かせくださいませ。それをもとに再度検討を重ねます。 どうぞよろしくお願い申し上げます。 [ メッセージ編集済み 編集者: Gun 編集日時 2005-01-27 10:35 ] | ||||||||||||||||
|
投稿日時: 2005-01-27 11:23
意味が通らなかったのだけど「Sessionを使うとなると携帯端末においては使えなかったり」のTipoかな?Cokkieを利用できない携帯端末に対応するためにクッキーレス・モードが用意されている。Web.Configの設定を変更するだけで、携帯端末でも利用できる。 Sessionデータの保存場所をステートデータベースとかステートサービスにすれば、複数のWEBサーバーからSession情報を共有出来る。ラウンドロビンで利用しても問題は無いはず。 標準のSessionを利用すれば自分で仕組みを作成する必要などないはずだけど・・・。
これがASP.NETの最大の特徴です。これを否定するなら、ASP.NETを使わないほうが幸せになれると思います。
前段でログファイルの内容を解析して、無駄(と貴方が思っている)アクセスを除去するアプリケーションを作成するほうが現実的かと思います。
いったい何と比較した意見でしょうか? 豊富なクラス、DBキャッシュ(コネクションプールのこと?それともDataSet?)、ロジックのクラス化など・・・最近の高級言語なら対応していない事の方が珍しいんじゃ・・・。JavaやPerlやPHPだって上記の要望をクリアしていると思います。ASP.NETを選択する理由としては薄いでしょう。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||||||||||||||
|
投稿日時: 2005-01-27 11:37
やるとすれば、こんな感じ?
「要求定義」を満たさないので、標準のPageクラスとWebコントロールは使用しない。 IHttpHandlerクラスからの発生で、独自のPageクラスを作る。 Webコントロールもそれぞれ独自に作る。 VS.NETで画面デザインが出来ないので独自のツールを作る。 | ||||||||||||||||
|
投稿日時: 2005-01-27 11:50
>「要求定義」を満たさないので、標準のPageクラスとWebコントロールは使用しない。
>IHttpHandlerクラスからの発生で、独自のPageクラスを作る。 >Webコントロールもそれぞれ独自に作る。 >VS.NETで画面デザインが出来ないので独自のツールを作る。 はい、それに似たような形です。 独自ツールとまでは今のところ、考えていませんが、既存のクラスを継承し、 独自のPageクラスやWebコントロールでいくつかの問題を解決しようとしている次第です。 |