我指的是以下链接: stackoverflow.com/questions/18288675/display-datetime-value-in-dd-mm-yyyy-format-in-mvc4
你的模特
var
Razor Page
[Required(ErrorMessage = "Enter the Issued date.")]
[DataType(DataType.Date)]
public DateTime IssueDate { get; set; }
Jquery DatePickter
@Html.TextBoxFor(model => model.IssueDate)
@Html.ValidationMessageFor(model => model.IssueDate)
Webconfig文件
$(document).ready(function () {
$('#IssueDate').datepicker({
dateFormat: "dd/mm/yy",
showStatus: true,
showWeeks: true,
currentText: 'Now',
autoSize: true,
gotoCurrent: true,
showAnim: 'blind',
highlightWeek: true
});
});
在使用日期格式dd / MM / yyyy时如2015年5月5日有效,但在使用日期时如29/5/2015时无效。
一旦我们从jquery datepicker中选择日期,文本框将显示29/5/2015。只是当它回发到服务器时,模型将显示日期为空(我使用DateTime?)。它将在2015年3月5日正常工作......
任何帮助?
编辑:
我在下面添加到我的控制器。当我回发时,下面的函数将执行,它显示en-GB。然后它将进入我想要处理httppost的另一个Action,但它显示为en-US!
<system.web>
<globalization uiCulture="en" culture="en-GB"/>
</system.web>
答案 0 :(得分:1)
将我的评论添加为答案:
要测试,请尝试以5/29/2015作为日期。如果这解析,那么您的应用程序文化存在问题,因为它试图将日期解析为美国格式(mm / dd / yyyy),即29/5/2015失败。
查看您的应用程序设置,看看是否在任何地方设置了en-US,或者您是否接受控制器的日期为mm / dd / yyyy,然后将其解析为您喜欢的格式。
答案 1 :(得分:0)
我会从改变你的Razor语法开始:
@Html.TextBoxFor(model => model.IssueDate)
到
@Html.EditorFor(model => model.IssueDate)
您的浏览器文化是什么?就好像应用程序正在将日期解析为不同的文化,例如en-US,然后因为没有第29个月而失败。
我认为您还需要将日期格式更改为dd / MM / yyyy。在MSDN上有很多关于此的信息。