我指的是以下链接:stackoverflow.com/questions/18288675/display-datetime-value-in-dd-mm-yyyy-format-in-mvc4
你的模型
[Required(ErrorMessage = "Enter the Issued date.")]
[DataType(DataType.Date)]
public DateTime IssueDate { get; set; }
剃须刀页
@Html.TextBoxFor(model => model.IssueDate)
@Html.ValidationMessageFor(model => model.IssueDate)
Jquery DatePickter
$(document).ready(function () {
$('#IssueDate').datepicker({
dateFormat: "dd/mm/yy",
showStatus: true,
showWeeks: true,
currentText: 'Now',
autoSize: true,
gotoCurrent: true,
showAnim: 'blind',
highlightWeek: true
});
});
Webconfig文件
<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!
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;
}
发布于 2015-05-20 00:15:46
我想补充一下我的评论,作为回答:
要进行测试,请尝试将其作为2015年5月29日的日期。如果这样分析,那么您的应用程序的文化就会有问题,因为它试图将日期解析为美国格式(mm/dd/yyyy),而该格式在2015年5月29日失败。
查看您的应用程序设置,看看是否在任何地方设置了en-US,或者您是否接受控制器的日期为mm/dd/yyyy,然后将其解析为首选格式。
发布于 2015-05-19 06:03:23
首先,我将您的Razor语法更改为:
@Html.TextBoxFor(model => model.IssueDate)
至
@Html.EditorFor(model => model.IssueDate)
你浏览器的文化是什么?这就好像应用程序正在将日期解析到另一种文化,比如en-US,如果没有第29个月,就会失败。
我认为您还需要将日期格式更改为dd/MM/yyyy。在MSDN上有很多关于这方面的信息。
https://stackoverflow.com/questions/30317738
复制相似问题