2

フォームのモデル検証を設定しましたが、検証がまったく機能していないようです。誰も助けてくれないと思います。以下の回避策を試してみましたが、firebug で「未定義」エラーが発生し続けます。

回避策のスクリプトの例:

<script type="text/javascript">
    $(document).ready(function () {            
        $.validator.setDefaults({ ignore: [] });
    });
</script>

テキスト フィールドの例 (注: 顧客の名前を含むオートコンプリート テキスト フィールド):

    @Html.TextBox("txtCustomer", null, new { @id = "txtCustomer", @class = "txt" })

隠しフィールドの例 (注: オートコンプリート フィールドから選択が行われると、ID が隠しフィールドに挿入されます):

    @Html.HiddenFor(model => model.Customer_ID, new { @id = "hCustomerID" })

モデル データの注釈の例

    [Range(1, Int32.MaxValue, ErrorMessage = "Please select a customer")]
    public int Customer_ID { get; set; }

編集: エラーのスクリーンショット

担当者のポイントが十分に高いため、スクリーンショットへのリンクを投稿する必要があります。

UI ポストバック エラー

EDIT:ページソースを示すスクリーンショット

ページソースのスクリーンショット

4

2 に答える 2

9

目立たないスクリプトの後で、このようにバリデーターの無視を変更するには遅すぎます。これは、バリデーターがデフォルトを 1 回 (作成時に) のみ取り込むためです。目立たないスクリプトがバリデーターを作成します。既存のバリデータ オブジェクトを参照して更新する必要があります。

これを試して

<script>
    $(document).ready(function () {            
        $('form').validate().settings.ignore = []
    });
</script>
于 2013-01-24T16:57:23.130 に答える
0

コントローラー、および関連するビューのアクションで JavaScript を使用する必要がない場合は、モデルを検証する前にモデル エラーを追加できます。例:

 [HttpPost]
        public ActionResult Fix(YourModel mdl)
    {
        if (mdl.Customer_ID>Int32.MaxValue || mdl.Customer_ID<1)
            ModelState.AddModelError("", "Your error message!");

        if (ModelState.IsValid)
        {


           //
           //Some code
           //

            return View("YourView", yourlist);
        }

        return View(mdl);
    }
于 2016-03-29T05:07:29.853 に答える