4

我猜这是基本的东西,接受的答案可能是指向我找不到的某个地方的链接:

我希望我的应用程序的客户端验证在数字、日期等上使用德语格式。对于服务器端,我设置了

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

在 web.config 中并在创建或详细信息视图中显示日期,我使用

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

现在,客户端仍然使用 dd/MM/yyyy - 格式来验证并相应地以英文显示错误消息。

在 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 回答