始终以错误格式显示引导日期

时间:2016-06-24 14:51:25

标签: javascript c# jquery ajax twitter-bootstrap

我有一个看似简单的日期显示,当切换另一个“Sale Date”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!任何人都可以看到这里发生了什么?非常感谢提前!

1 个答案:

答案 0 :(得分:0)

我从未弄清楚为什么会发生这种情况,但我的解决方法实现了最终目标:我将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());