【问题标题】:Setup client-side validation to german将客户端验证设置为德语
【发布时间】:2013-09-02 14:08:06
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 尝试检查这个问题stackoverflow.com/questions/17106105/…希望这有帮助
  • 将验证更改为另一种文化不可能有那么复杂,真是一团糟……
  • 我现在处于一个状态,其中一些验证消息是德语,其他是英语,用于一个相同类型的输入字段..

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


【解决方案1】:

我现在使用以下内容:

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")

很遗憾,我知道我是菜鸟,但将服务器和客户端验证更改为另一种文化肯定会更直观,包括所有错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多