*%%%UPDATE % >
我刚刚意识到 除非我用火狐,否则这个日期 根本就没有在发布时被数据固定起来。
为什么浏览器会影响服务器上的数据绑定?
我觉得我在吃疯狂药丸
我的问题是,我有一个 JQuery 日期采集器, 似乎格式格式正确(mm/dd/yyyyyyy), 但当数值被张贴到服务器上时, 月份和天数会被转换 。
日期属性会像这样添加到页面上( 它被隐藏了, 以便能在张贴时绑定 。 如果它是一个简单的文本框, 问题是一样的 ) :
<input type="hidden" name="SearchByDate" id="SearchByDate" value="<%: ((DateTime)Model.SearchByDate).ToString(Web.Common.Config.GetDateFormatBase) %>" />
在我的观点模型中,我指定日期格式如下:
[DisplayFormat(DataFormatString = Common.Config.GetDateFormat,
ApplyFormatInEditMode = true)]
public DateTime? SearchByDate { get; set; }
我的雅瓦记本日期选手是像这样格式的:
$("#appointmentDateDiv").datepicker({
------> dateFormat: "<%= Web.Common.Config.GetDateFormatJavascript %>",
changeMonth: true,
onSelect: function (dateText, inst) {
$("#SearchByDate").val(dateText);
$("form").submit();
}
});
我实际上在这种普通类中 将格式简化为:
public const string GetDateFormatBase = @"MM/dd/yyyy";
public const string GetDateFormat = @"{0:" + GetDateFormatBase + "}"; //This is for annotations
public const string GetDateFormatJavascript = "mm/dd/yy";
As you can see, the formats are all the sam:month day year. Everything looks good when I first load a page like this, so the datepicker lets me select a date in the right format. Then I post and if I step through my code everything still looks fine. I even re-format the date to make sure before I return to the view. But the month and day always get switched.
最奇怪的是,在火狐中,每件事物都很管用。它在IE,Chrome,和歌剧中都失败了。但我不明白为什么...