MVC 4日期文化问题?

用户名

我正在使用MVC 4,并且想知道Datetime文化信息中是否存在错误?

我正在尝试使澳大利亚日期生效(dd / MM / yyyy),但一直说日期格式是错误的,即使在将web.config全局化后也是如此。我以为我的代码有错误,但是即使您启动一个新项目,它仍然会发生。

我启动了一个新的MVC 4 Web应用程序。

将以下内容添加到web.config文件中

<globalization culture="en-AU" uiCulture="en-AU" />

然后,将以下内容添加到AccountModels.cs文件中:

[DataType(DataType.DateTime)]
[Required(ErrorMessage="Date is required")]
public DateTime? MyDate { get; set; }

然后,将以下内容添加到Register.cshtml文件中:

<li>
    @Html.LabelFor(m => m.MyDate)
    @Html.TextBoxFor(m => m.MyDate)
</li>

运行该应用程序,转到注册页面,尝试输入类似26/03/2013之类的日期,它显示格式无效。

请帮忙。

渐近故障

尝试将此属性添加到MyDate属性中:

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

尽管可以在web.config中设置区域性,但这应将其强制为该格式。

更新

好的,因此上述答案并不能真正解决问题,但是如果您确实想更改日期的初始显示格式非常重要。一个重要的注意事项是,该DisplayFormat属性不是由TextBoxFor辅助程序拾取的,而是辅助程序拾取EditorFor

无论如何,真正的解决方案。问题是jQuery验证无法解析日期时的区域性。如果关闭客户端验证,则可以在了解区域性的服务器上解析日期。

解决方法是覆盖日期的jQuery验证,并包括一个附加的jQuery全球化插件。您可以在此处找到全球化插件您也可以使用Nuget软件包管理器轻松下载插件。我只是打开了程序包管理器,选择了左侧Online选项卡,然后在搜索中键入“ globalize”,这是第一个结果。安装完成后,我将包含以下两个文件:

globalize.js
globalize.culture.en-AU.js

您可以使用脚本标签直接将它们包括在内,也可以将它们放在束中,也许与其他jQuery验证文件一起放置。

一旦有了这些,就需要添加以下脚本来覆盖jQuery的日期验证:

<script type="text/javascript">
    $(function () {
        $.validator.methods.date = function (value, element) {
            Globalize.culture("en-AU");
            // you can alternatively pass the culture to parseDate instead of
            // setting the culture above, like so:
            // parseDate(value, null, "en-AU")
            return this.optional(element) || Globalize.parseDate(value) !== null;
        }
    });
</script>

就是这样,应该可以解决问题。我将此解决方案归功于以下答案:jQuery验证和MVC3。如何更改日期格式我也只想针对您的问题提供更多说明。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC 4日期文化问题?

来自分类Dev

具有默认日期的MVC4日期选择器

来自分类Dev

Asp.net MVC 4日期输入隐藏最旧的日期

来自分类Dev

Asp.Net MVC 5日期格式

来自分类Dev

MVC4 Eonasdan Bootstrap 3日期时间选择器无法打开选择器屏幕

来自分类Dev

Asp.Net MVC DateTime文化问题

来自分类Dev

ASP .NET MVC 5日期和时间选择器

来自分类Dev

ASP .NET MVC 5日期和时间选择器

来自分类Dev

Chrome中不会显示ASP.NET MVC 5日期

来自分类Dev

MVC 4 DropDownListFor的问题

来自分类Dev

MVC视图-日期格式问题

来自分类Dev

跨浏览器的日期不一致-MVC 5日期从模型开始

来自分类Dev

连接字符串以显示文化价值MVC 4+

来自分类Dev

如何在Asp.Net MVC Razor中将值设置为HTML5日期字段?

来自分类Dev

路由问题MVC4

来自分类Dev

SignalR MVC4问题

来自分类Dev

路由问题MVC4

来自分类Dev

Microsoft Access 2013日期问题

来自分类Dev

2年日期的SimpleDateFormat问题

来自分类Dev

iOS 7日期时区问题

来自分类Dev

在 .net MVC 中将日期从阿拉伯文化转换为英语

来自分类Dev

MVC5本地化与路线文化-拥有区域的问题

来自分类Dev

MVC5本地化与路线文化-拥有区域的问题

来自分类Dev

jQuery datepicker和ASP.net MVC 4中客户端的日期验证问题

来自分类Dev

mvc4从表单获取日期值

来自分类Dev

Mvc4中的WebGrid控件问题

来自分类Dev

MVC 4-脚本/ Css渲染问题

来自分类Dev

MVC4 Razor View IntelliSense问题

来自分类Dev

ASP.NET MVC 4 的 Tabindex 问题