首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC模型接受大日期

MVC模型接受大日期
EN

Stack Overflow用户
提问于 2015-05-19 05:53:14
回答 2查看 158关注 0票数 1

我指的是以下链接:stackoverflow.com/questions/18288675/display-datetime-value-in-dd-mm-yyyy-format-in-mvc4

你的模型

代码语言:javascript
运行
复制
  [Required(ErrorMessage = "Enter the Issued date.")]
  [DataType(DataType.Date)]
  public DateTime IssueDate { get; set; }

剃须刀页

代码语言:javascript
运行
复制
 @Html.TextBoxFor(model => model.IssueDate)
 @Html.ValidationMessageFor(model => model.IssueDate)

Jquery DatePickter

代码语言:javascript
运行
复制
$(document).ready(function () {
    $('#IssueDate').datepicker({
        dateFormat: "dd/mm/yy",
        showStatus: true,
        showWeeks: true,
        currentText: 'Now',
        autoSize: true,
        gotoCurrent: true,
        showAnim: 'blind',
        highlightWeek: true
    });
});

Webconfig文件

代码语言:javascript
运行
复制
<system.web>
    <globalization uiCulture="en" culture="en-GB"/>
</system.web>

它在使用日期格式dd/MM/yyyy (如3/5/2015 )时工作,但在使用日期(如29/5/2015 )时不起作用。

当我们从中选择日期后,textbox将显示29/5/2015。只是当它回发到服务器时,模型将显示日期为null (我使用的是DateTime?)。它在2015年3月5日会很好.

有什么帮助吗?

编辑:

我将下面添加到我的控制器中。当我回发时,下面的函数将执行,并显示en-GB。然后,它将进入我的其他操作,它应该处理httppost,但它显示的是en-US!

代码语言:javascript
运行
复制
protected override void Initialize(System.Web.Routing.RequestContext requestContext) 
{ 
    base.Initialize(requestContext); 
    const string culture = "en-GB"; 
    CultureInfo ci =  CultureInfo.GetCultureInfo(culture);
    Thread.CurrentThread.CurrentCulture = ci;  
    Thread.CurrentThread.CurrentUICulture = ci; 
} 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-20 00:15:46

我想补充一下我的评论,作为回答:

要进行测试,请尝试将其作为2015年5月29日的日期。如果这样分析,那么您的应用程序的文化就会有问题,因为它试图将日期解析为美国格式(mm/dd/yyyy),而该格式在2015年5月29日失败。

查看您的应用程序设置,看看是否在任何地方设置了en-US,或者您是否接受控制器的日期为mm/dd/yyyy,然后将其解析为首选格式。

票数 1
EN

Stack Overflow用户

发布于 2015-05-19 06:03:23

首先,我将您的Razor语法更改为:

代码语言:javascript
运行
复制
@Html.TextBoxFor(model => model.IssueDate)

代码语言:javascript
运行
复制
@Html.EditorFor(model => model.IssueDate)

你浏览器的文化是什么?这就好像应用程序正在将日期解析到另一种文化,比如en-US,如果没有第29个月,就会失败。

我认为您还需要将日期格式更改为dd/MM/yyyy。在MSDN上有很多关于这方面的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30317738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档