2

MVC を使用する asp.net レポートをリファクタリング中です。レポートの条件の一部を削除し (不要になりました)、新しい条件をいくつか追加しましたが、レポートがまったく生成されません。送信ボタンをクリックすると、単純に戻ります。

そのため、少なくともそこに到達していることを確認するためのサニティ チェックとして、いくつかの console.log ステートメントをコードに追加しました。

   $("#submit_button").click(function () {
        console.log("submit btn clicked");

        $("#NumberOfResults").css("visibility", "visible");
        $("#NumberOfResults").html("Please wait...");

        EnableButton("submit_button", false);

        var deptsList = $('#depts').checkedBoxes();
        $('#deptHeader span').html(deptsList.join(", "));
        var sitesList = $('#sites').checkedBoxes();
        $('#sitesHeader span').html(sitesList.join(", "));

        $('#hiddenDepts').val(deptsList); //do I need to make this: $('#hiddenDepts').val(deptsList).join(","); ?
        $('#hiddenSites').val(sitesList); // ""
        var UPCs = $('UPC').val();
        if (UPCs == "All") {
            $('UPC').val("1"); // take everything (1 and greater)
        }

        console.log("about to submit the form");
        $("form").submit();
    });

渡されるすべての値が有効であるとは限らない (modelState にエラーが含まれている) ため、おそらく失敗していると思いましたが、$("form").submit(); への呼び出しの後に、さらなる処理に対する反対意見が出てくるのではないでしょうか。?

IOW、送信ボタンを押してから F12 キーを押した後、コンソールに「送信ボタンがクリックされました」と「フォームを送信しようとしています」が表示されると思いますが、そうではありません...

5 つのモデル メンバーのうち 3 つが空の文字列であることは事実です。そのため、さらに問題を突き止める必要がありますが、これらのコンソール ログ メッセージさえ表示されないのはなぜですか?

アップデート

ここの最後の行のコントローラーにブレークポイントがあります。

[HttpPost]
public ActionResult ReceiptCriteria(TLDSalesReceiptCriteriaModel model)
{
     ViewBag.DebugMessage = "No error";  
     if (ModelState.IsValid) // inspect locals.modelstate [breakpoint set here]

…なのに届かない…?!?!?

更新 2

Karl Anderson への回答として、関連する HTML を次に示します。

<button type="submit" id="submit_button" class="bottomButtonEnabled">View Report</button>

更新 3

コンソール メッセージをテキストとして取得する方法がある場合、方法がわからなかったので、悲鳴のショットをキャプチャしました。

ここに画像の説明を入力

あなたの目が小さすぎて読むことができない場合、いわば(私の目はそうです)、言葉遣いの一部を以下に示します。

shouldShowTB ファイルが存在しません - デフォルト アクション show Toolbar > DOMException chrom.tabs is not available: この API にアクセスする権限がありません。確認してください.... リソースの読み込みに失敗しました: サーバーは 404 (見つかりません) のステータスで応答しました ...sprite.png リソースの読み込みに失敗しました: サーバーは 400 のステータスで応答しました (Bad Request) リソースの読み込みに失敗しましたchrome-extension://klibjjljfadl;fjkdlfjkdl;;fjdlfjadl/tb/al/state.html MessagingReadyWrapper の準備ができていません。名前:abstractionLayerBack.js、場所....プラグインを待っているタイムアウト、プラグインなしで準備完了を呼び出す...

更新 4

Aegisが言ったことを、送信ボタン自体または次のいずれかで実行しました。

form action="/mypath/mycshtml" method="post" 

...右クリックして「要素の検査」を選択すると、CDT で強調表示され、右ペインの下部に次のように表示されます。

フォームを送信してください...そして、たくさんの「gobbledygook」(私には奇妙です; おそらくAegisはそれを理解しています)

参照されるファイルは jquery.js:6497 です。その下には、jquery に関する一連の情報が表示されます (sourcename の値は、Google の CDN jQuery ファイルへのパスです)。代わりに、submit_button クリック ハンドラーを指す必要がありますか?

更新 5

たぶん、私の問題の少なくとも一部は、「form」.submit を明示的に呼び出していたことでした。これは、送信ボタンでは必要ないはずです-それをマッシュすると、フォームが自動的に送信されますよね? それをコメントアウトした後(document.form.submit()の生のjavascriptを試した後)、少なくとも最初に追加したconsole.logメッセージ(「submit btn clicked」)がコンソールに表示されます。そのため、そこと 2 番目の console.log メッセージ (コンソールに書き込まれていない) の間のどこかで、何かが失敗しています。

4

2 に答える 2

1

イベントがバインドされている場合は、Chrome 開発ツールで確認してください#submit_button

于 2013-08-08T21:06:02.747 に答える