我有一个看似简单的日期显示,它显示默认的“开始日期”,或者在切换另一个“销售日期”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封装在一个span中,并在AJAX中用.html()替换了.val()更改,但是格式返回到默认的日期和时间以及切换后的RFC1123!有人能看到这是怎么回事吗?事先非常感谢!
发布于 2016-07-08 19:43:02
我从来没有找出为什么会发生这种情况,但我的解决方案实现了最终目标:我将TextBoxFor更改为EditorFor,然后每当使用切换时,脚本都会将html文本更改为最终日期。
剃须刀:
<div class="startDate">
@Html.EditorFor(m => m.StartDate, "DateTime", "StartDate", new { @class = "form-control" })
</div>AJAX:
success: function (data) {
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(data[0].StartDate);
var dt = new Date(parseFloat(results[1]));
$(".startDate").text((dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear());https://stackoverflow.com/questions/38016272
复制相似问题