这是我猜的基本内容,接受的答案可能是我找不到的地方的链接:
我希望我的应用程序的客户端验证在数字,日期等上使用德语格式。对于服务器端,我已经设置了
<globalization uiCulture="de" culture="de-DE" />
在web.config中并显示日期,例如创建或详细信息视图,我使用
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}",
ApplyFormatInEditMode = true)]
现在,客户端仍然使用dd / MM / yyyy - 格式进行验证,并相应地显示英文错误消息。
在MVC4中,将客户端验证设置为某种文化的正确方法是什么?
答案 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")
这是一个小小的问题,我知道我是一个菜鸟,但它应该更直观地将服务器和客户端验证更改为另一种文化,包括所有错误消息。