- PR -

[ASP.NET] Validatorで「エラー: ';' がありません。」

投稿者投稿内容
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-05-31 14:48
引用:

ひろさんの書き込み (2005-05-30 16:21) より:
アドバイスを頂きたく投稿致します。

必ず発生するわけでなく、特定のディレクトリ以下の.aspxファイルのみ発生しております。
ソースを開くで確認してみましたが、とくに";"が不足している部位は確認できませんでした。




うまく行くページとうまく行かないページのパスの差異も調査してみると良いかも?
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-05-31 19:28
引用:

ひろさんの書き込み (2005-05-31 13:56) より:

エラーメッセージの行番号を参考に、HTMLソースをエディタで開いてエラー発生場所を探してみる。
がーん、改行だけしかないぞ。
(以下略)


おもろいやん。

 まず疑うのは、何らかの文字列を生成して、スクリプトに埋め込んどうところやな。例えば、
コード:

var str = "ここに
改行付きの文字列を埋め込む";


みたいなことになると、そんなメッセージが出てたような気がする。やっとる方は「正しい」わけやし、結構気づかんと見過ごすことも多い。

 次に、VSが召還できひんっちゅうことやけど、自PCをサーバにして、VSの「デバッグ実行」でやっとう場合は、ちぃとひねりが必要。
 まず、デバッグメニューから、プロセスにアタッチを選択し、ASP.NETのワーカープロセスだけデバッグする。それで実行すると、既存プロセスを利用するか、新しいインスタンスを生成するか聞いてくるから、新しいインスタンスを生成する。

 それでできひんかったら、デバッグをいったん終了して、IEを別に起動する。そのIEにアタッチする。このとき、デバッグの対象は、スクリプトを選択すること。目的のページを開いたら、一時停止をクリック。せやけど止まらん。止まらんのはスクリプトに制御が移ってないから。スクリプトに制御が移るようなことをすると、止まるから、そこからステップ実行。

これでどや。

[ メッセージ編集済み 編集者: Jitta 編集日時 2005-05-31 19:29 ]

[ メッセージ編集済み 編集者: Jitta 編集日時 2005-05-31 19:29 ]
ひろ
会議室デビュー日: 2004/11/29
投稿数: 13
投稿日時: 2005-06-01 17:47
お世話になります。
皆様のご指導の甲斐あって、強力な召還獣「デバッガー」を仲間にしました。

ASP.NETが稼動しているサーバーのユーザーグループ"Debugger"に自分のユーザーを追加したのが良かったのか、はたまた.NET FrameWorkをアップデートしたのが良かったのか。

さてさて、デバッガーもとんだじゃじゃ馬。手元にあるテキスト、デバッグの項を読みながらデバッガーにムチ打っております。
ムチ打つたび、ステップオーバー、ステップオーバー鳴いてますが、まだまだ手なずけるには時間がかかりそうです。

そんなこんなでまだまだ原因究明中。

ひろ
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-06-01 21:16
> 自動生成されるJavaScriptがエラーを発生させているように思うのですが、
 バグが報告されているとはいえ、テスターが大々的にテストして出荷しているコードと、作ったばかりのコードと、どちらにバグがあるかと問われると、作ったばかりのコードを疑いますね、作った本人以外は。

> がーん、改行だけしかないぞ。
 そんなことはわかっています。なので、「それがHTMLソースの行番号と必ずしも一致していないけど」と、カッコ書きを追加しています。また、「その行、および前後あわせて8行ほど」とも書いています。

 この掲示板を見ている人にわかっている情報は、

  • RegularExpressionValidatorを追加したこと
  • エラーになるページとならないページがあること
  • 両方の違いは、特に見あたらないこと
  • JavaScriptが「';'がありません」というエラーになること
  • エラーになった行として報告される行は、空白行であること
  • 「スクリプトのデバッグ使用しない」をOFFにしても、デバッグできないこと

ということです。
 でも、一番欲しい情報は、ソース上のどこでそのエラーが通知されているのか、なんです。「空白行」ではなく、「こんなコードのここ」という、行が特定できる情報なんです。
 次に欲しい情報は、必ず自分で書いたコードを追加しているはずですが、どんなコードを追加したのか、ということです。今回の場合、「Validatorしか追加していない」のかもしれませんが、その一致条件に、何を指定したのか、あるいはまったく指定していないのか、というところがわかりません。
 9番目のレスまでで、この2つに関して、まったく情報がありません。

 また、「どの様にして**を試みたのか」という情報も大切です。例えば、HTMLソースをエディタで見た、とありますが、これはIE上で右クリックして「ソースを表示」を選択したと考えて良いのでしょうか?「HTMLソース」という言葉が使われているので、間違っていないと思いますが、たまに.aspxファイルを一生懸命見ている人がいますので、念のため。
 「スクリプトのデバッグ使用しない」のチェックを外してもVSが召還できなかったとありますが、これはエラーのダイアログは表示されるのに「デバッグする」を選んでもデバッガが起動してこなかった、と考えて良いのでしょうか?私のところでは、VSが起動していれば、既存のインスタンスを使うか、新しいインスタンスを作成するかを選ぶダイアログが表示されます。これも表示されないのでしょうか?
→Debuggerに追加しろと、マニュアルに書いてある


 その他、私の経験から、翻訳ソフトのなかで、Webページ翻訳をしてくれるようなソフトをいれると、一部のスクリプト機能がおかしくなることがある、ということがわかっています。これは、翻訳エンジンをプロクシーに設定するためです。同じように、GoogleツールバーなどのIEプラグインも、動作に影響を与えるかもしれません。

 というわけで、IEの動作に影響を与えそうなソフトウェアをインストールしていないか、という情報も必要です。

_________________
ひろ
会議室デビュー日: 2004/11/29
投稿数: 13
投稿日時: 2005-06-02 10:41
私には情報の整理、洗い出しが不足しているようです。

[ことの発端]
2つのASPXページに同じ内容の"<ASP:RegularExpressionValidtor>"タグを記述。

[今回の問題点]
片方のASPXページは正常に入力検査される。
他方のASPXページは入力検査は正常に動作しているものの、
ページを開いたときにステータスバーにエラーを知らせるアイコンがでる。
※エラーがでるASPXページから"ReqularE...タグ"を削除すると、エラーはでなくなる。

[エラーメッセージ]
';'がありません。

[デバッグ]
デバッガを使ってステップ実行。
使い方を習得中のため、エラー行の特定に至っていない。(←現在)

[今後の対策]
エラーのでるASPXファイルを別ディレクトリにコピーしてみて、再現するか確認する。
デバッガの活用


Q. どこでエラーが通知されているか?
特定できていない。(特定の仕方が分かっていない?)

Q. 自分で追加したコード?
<ASP:REGULAREXPRESSIONVALIDATOR id=regexpTxt3 errormessage="フリガナの入力が不正です" ValidationExpression="^[ア-ン]*$" Display="none" controltovalidate="TextBox1" Runat="server" />
を、HTMLデザイナのHTMLコードにじかに記述。


#まずは、デバッガなるものを覚えたので、それを使っていろいろと試みるつもりです。

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