4

これは私が推測する基本的なものであり、受け入れられた答えはおそらく私が見つけられなかった場所へのリンクになるでしょう:

アプリケーションのクライアント側の検証で、数値や日付などにドイツ語の形式を使用する必要があります。サーバー側の場合、設定しました

<globalization uiCulture="de" culture="de-DE" />

web.config で、作成ビューや詳細ビューなどで日付を表示するには、次を使用します

[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", 
                                                  ApplyFormatInEditMode = true)]

現在、クライアント側は引き続き dd/MM/yyyy - Format を使用して検証し、それに応じてエラー メッセージを英語で表示します。

MVC4 で、クライアント側の検証を特定のカルチャに設定する正しい方法は何ですか?

4

1 に答える 1

0

私は今、以下を使用しています:

1) jqueryval などをロードした後にこの (盗まれた) コードをどこかに添付すると (参照ファイルが配置されます)、このコードの下部にある Globalize にカルチャが適用され、入力検証のベンチマークとなります。

<script type="text/javascript" src="~/Scripts/jquery.globalize/globalize.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.globalize/cultures/globalize.culture.de-DE.js"></script>
<script type="text/javascript">
    (function ($, Globalize) {

        // Tell the validator that we want numbers parsed using Globalize

        $.validator.methods.number = function (value, element) {
            var val = Globalize.parseFloat(value);
            return this.optional(element) || ($.isNumeric(val));
        };

        $.validator.methods.min = function (value, element, param) {
            var val = Globalize.parseFloat(value);
            return this.optional(element) || val >= param;
        };

        $.validator.methods.max = function (value, element, param) {
            var val = Globalize.parseFloat(value);
            return this.optional(element) || val <= param;
        };

        $.validator.methods.range = function (value, element, param) {
            var val = Globalize.parseFloat(value);
            return this.optional(element) || (val >= param[0] && val <= param[1]);
        };

        // Tell the validator that we want dates parsed using Globalize

        $.validator.methods.date = function (value, element) {
            var val = Globalize.parseDate(value);
            return this.optional(element) || (val);
        };

    }(jQuery, Globalize));

    $(document).ready(function () {
        // Set Globalize to german
        Globalize.culture("de-DE");
    });

</script>

2)フィールドに入力された値が検証に違反した場合、またはユーザーがそのフィールドに空の値を送信しようとした場合のカスタム エラー メッセージ:

@Html.ValidationMessageFor(model => model.Datum, "my custom error message")

それは残念です、私は初心者であることを知っていますが、すべてのエラーメッセージを含め、サーバー側とクライアント側の検証を別のカルチャに変更することは間違いなくより直感的である必要があります.

于 2013-09-03T19:29:08.260 に答える