0

JavaScript (ASP MVC4) の非表示フィールドの評価に問題があります ビューでモデルを使用しており、モデルのプロパティに非表示の入力があります

@Html.HiddenFor(mdl => mdl.FilterByUser, new { @id = "filterByUserId" })

SearchBox を持つヘルパーがあり、Enter キーを押すと検索が行われます。

$("#search-box").keydown(function (event) {
    var keypressed = event.keyCode || event.which;
    if (keypressed == 13) {
        var searchValue = $("#search-box").val();
        var filterByUser = $("#filterByUserId").val();
        debugger;

        window.location = "?searchValue=" + searchValue + "&filterByUser=" + filterByUser;

    }
});

問題は、DeveloperTools をオンにしてブラウザーが「デバッガー」で停止した場合にのみ、var filterByUser に値があることです。ツールが閉じている場合、「パラメーター ディクショナリには、メソッドの null 非許容型 'System.Boolean' のパラメーター 'filterByUser' の null エントリが含まれています」

もう 1 つの値である searchValue は、評価されても問題ありません。

これを修正するにはどうすればよいですか? ありがとう、ダニエル

4

1 に答える 1

0

わかった。問題は、ヘルパーが既にフォームになっていることでした。js のキーダウン ハンドラにブレークポイント/アラートを設定すると、実行されました。そうでない場合、コントローラーアクションは、テキストエリアの入力時に form.submit を使用して呼び出されました。

私の解決策: js ハンドラーが削除され、フォームのプロパティがコントローラーのアクション プロパティと一致するように調整されました。

于 2012-10-03T09:01:11.193 に答える