【发布时间】:2016-06-24 14:51:24
【问题描述】:
我有一个看似简单的日期显示,当另一个“销售日期”DropDownBoxFor 被切换时,它显示默认的“开始日期”或 AJAX 结果日期。日期格式应设置为短日期,但显示始终以日期和时间格式显示。切换“销售日期”字段后,将检索相应“销售日期”的“开始日期”并显示为 RFC1123 日期!
型号:
public DateTime StartDate { get; set; }
剃须刀:
@Html.TextBoxFor(m => m.StartDate, "{0:d}", new { @readonly = "readonly", @class = "form-control" })
AJAX:
success: function (data) {
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(data[0].StartDate);
var dt = new Date(parseFloat(results[1]));
$("#StartDate").val(dt);
将 TextBoxFor 更改为 DisplayFor 后,短日期正确显示,但在切换其他字段后不会更新。因此,我将 DisplayFor 包装在一个跨度中,并将 AJAX 中的 .val() 更改替换为 .html(),但切换后格式恢复为默认的错误日期和时间以及 RFC1123!谁能看到这里发生了什么?非常感谢!
【问题讨论】:
-
你试过删除只读属性吗?检查这是否可能是您的问题的原因...
-
@RokumDev - 感谢您的回复,是的,我删除了只读文件,但仍然显示不正确的格式,只有这样它们才可编辑。
标签: javascript c# jquery ajax twitter-bootstrap