- - PR -
CompareValidatorがサーバーにアップロードすると正しく動作しない
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-04-29 03:31
CompareValidatorコントロールを使用して日付の入力チェックを行いたいのですが、localhostで走らせると正しくValidationSummaryにエラーメッセージを表示してくれるのに、サーバーにアップロードするとチェックされないらしく、入力されたままの値をSqlCommandのパラメタに渡そうとして例外が投げられ、"String was not recognized as a valid DateTime."というアプリケーション・エラーが返ってきてしまいます。
CompareValidatorはクライアント側のチェックだと思っていたのすが、同じブラウザを使っているのになぜ動作が違うのでしょうか?どこをチェックすればよいか教えていただけたら幸いです。 サーバー側もローカル側もIIS6.0を使用し、ASPとFrameworkのバージョンも1.14322で同じです。サーバーはWindows2003 Standerd Ed.、localhost側はXP Pro.です。 | ||||||||||||||||
|
投稿日時: 2006-04-29 08:23
ただの FormatException のような気がしますね。 この説明のタイミングからして CompareValidator は関係あるのでしょうか?
たとえば、スクリプトが切られていれば挙動は変わりますが...
とりあえず、起きている行くらいは掴んでおかないとデバッグは困難を極めます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-04-29 08:39
クライアントチェックをアテにするな、ということです。必ずサーバでチェックしなければなりません (must)。 それはそれとして。 DateTime.Parse を使っているのなら、そのマシンのロケール設定によって、パースできる文字列が変わると言うことも、念頭に置いておかなければならないでしょう。 つまり、サーバのロケールが U.S になっていれば、dd/MM/yyyy でなければならない、とかかもしれません。 | ||||||||||||||||
|
投稿日時: 2006-04-29 14:45
ご返信どうもありがとうございます!
localhostを使っての実行ですと、サーバー側に処理を回す前に(Post前に)クライアント側でエラーになるんです。 localhostを使うと、例えば日付入力Boxに"xyz"と入力するとCompareValidatorのおかげで、Errorですよ、とValidationSummaryに表示できるのです。が、これをアップロードしてリモートサーバーを使用しての実行ですと、"xyz"と入力してもCompareValidatorが動作してくれず、そのままサーバーに処理が戻り、Databaseに値を送ろうとしたため、そのような例外が出ています。
恥ずかしながら、経験が浅いもので今一用語がわかりません。。スクリプトを「切る」とは、どういったことでしょうか?
はい!ありがとうございます、肝に銘じております。しかし、今一この動作の違いが理解できず、理由を知りたくて投稿させていただきました。
これってすっごく怪しいです!私のXPは英語版ですが、言語とリージョン設定は日本語です。対してサーバーは完全に英語、USの設定です。 でもそうであったとしても、日付のバリデーションで"xyz"をチェックしてくれずにスルーというのは、納得がいかないのではないでしょうか?? |
1