0

MVC Razor ビュー エンジンでの作業; プロパティに標準の必須属性を持つモデルと、ajax コールバックを介してレンダリングされる部分ビューがあります。メイン ビューにはフォームが含まれており、部分ビューには表示テンプレートなどが含まれているだけです。クライアント側でデータ注釈をトリガーするには、次のことを行う必要がありました。

$('#MyButton').click(function () {
        $('#MyContainer').load("MY_ACTION_URL", function () {
            var form = $("#ReserveForm");
            form.removeData('validator');
            form.removeData('unobtrusiveValidation');
            $.validator.unobtrusive.parse(form);                
        });
});

上記はうまく機能し、クライアント側の検証を再バインドし、完全に起動します。問題は、起動していないカスタム Jquery 検証があることです。例えば;

$('#ReserveForm').validate({
        ignoreTitle: true,
        errorLabelContainer: '#errorContainer',
        errorClass: 'ClientSide-Validation-errors'
    });

    $.validator.addMethod('myCustomValidation',
        function (value, element, param) {
            return $(element).val() == '' && param == true;
        }, 'my message');

    $('#MYINPUT').rules("add",
        {
            myCustomValidation: true
        });

上記のカスタム検証は、部分レンダリングの準備ができているドキュメントで宣言されていますが、うまくいきません。

PS、ページの読み込み時に (たとえば RenderAction で) パーシャルをレンダリングすると、カスタム検証が正常に起動します。

どんな助けでも感謝します。

4

1 に答える 1

0

これは重複していると思います。部分ビューにスクリプトを入れたくない場合。スクリプトを抽出し、パーシャルの親ビューで宣言する必要があります。

MVC4 部分ビュー JavaScript バンドルの問題

于 2013-03-25T19:45:26.067 に答える