将客户端验证设置为德语

时间:2013-09-02 14:08:07

标签: asp.net-mvc asp.net-mvc-4 globalization

这是我猜的基本内容,接受的答案可能是我找不到的地方的链接:

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

<globalization uiCulture="de" culture="de-DE" />
在web.config中

并显示日期,例如创建或详细信息视图,我使用

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

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

在MVC4中,将客户端验证设置为某种文化的正确方法是什么?

1 个答案:

答案 0 :(得分: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")

这是一个小小的问题,我知道我是一个菜鸟,但它应该更直观地将服务器和客户端验证更改为另一种文化,包括所有错误消息。