发送日期时间因为JSON将无法在我的视图中正确显示

时间:2016-05-17 15:05:19

标签: javascript jquery json asp.net-mvc razor

我正在开发一个asp.net mvc-4 Web应用程序。我有以下字段: -

<div>    
@Html.TextBoxFor(model => model.LiveDate, new { @class = "datepicker", @Value = (Model != null && Model.LiveDate.HasValue) ? Model.LiveDate.Value.ToString("dd/MM/yyyy") : string.Empty })
@Html.ValidationMessageFor(model => model.LiveDate)
</div>

<div>
@Html.TextBoxFor(model => model.EndDate, new { @class = "datepicker", disabled = "disabled",@Value = (Model != null && Model.EndDate.HasValue) ? Model.EndDate.Value.ToString("dd/MM/yyyy") : string.Empty }) 
@Html.ValidationMessageFor(model => model.EndDate)
</div>

<div>     
@Html.EditorFor(model => model.ContractLength) 
@Html.ValidationMessageFor(model => model.ContractLength)
</div>

现在我定义了以下jquery,它应该发送LiveDate&amp; ContractLength到一个动作方法来设置EndDate: -

$("#LiveDate, #ContractLength").change(function () {
            $.getJSON("@Url.Content("~/Order/CalculateDate")", { date: $("#LiveDate").val(), month: $("#ContractLength").val() },

            function (Data) {

                $("#EndDate").val(Data.Name);


            });
        });

以下是将执行calculatepublic

的实际操作方法
 public   ActionResult CalculateDate(string date, int? month)
             {
                 if (!String.IsNullOrEmpty(date) && month.HasValue)
                 {
                     DateTime d = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                     var Data = new { Name = d.AddMonths(month.Value) };
                     return Json(Data, JsonRequestBehavior.AllowGet);
                 }
                 return Json(new { Name=string.Empty}, JsonRequestBehavior.AllowGet);




             }

现在我试过这个: -

  1. the livedate = 31/05/2016
  2. 合约期限= 7
  3. 操作方法返回以下31/12/2016 00:00:00 但是在EndDate中我得到了这个值/Date(1483142400000)/而不是"31/12/2016" ..所以有人可以据此提出建议吗?

1 个答案:

答案 0 :(得分:0)

你正在获得一个时间戳, 使用javascript函数

  • toDateString
  • toTimeString
  • 的toLocaleString
获取日期对象的

新日期(timeStamp)

我认为 var csDate = new Date(&#39; 1483142400000&#39;); 将完成这项工作。

请注意,如果 dd / MM / yyyy 作为格式很重要,那么您构建该日期对象的选项将是: