[asp.net-mvc]JQuery Ajax 方法不提交成功数据作为数组

发布时间: 2016/10/9 6:10:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有 Jquery Ajax 功能从 MVC 控制器获取数据。Ajax 方法调用完美但不是在正确的区域。击中后在 Ajax 调用的成功方法的控制器方法。 我 ajax 方法从控制器返回数组。但它不工作。我在成功中设置警报时它会弹出。我不能分配数组值来定义变量。 请帮我整理这。

Jquery Ajax 方法︰

<script type="text/javascript">
        $(document).ready(function () {
            debugger;
            var austDay = new Date();
            var currDay = new Date();
            $.ajax({
                type: 'GET',
                url: '/Service/Utility/GetDownDate',
                success: function (countDownDetail) {
                    if (countDownDetail.Result.length > 0) {
                        austDay = countDownDetail.Result[0];
                        currDay = countDownDetail.Result[1];
                    }
                }
            });

            austDay = new Date(austDay, 1 - 1, 26);



            $('#defaultCountdown').countdown({ until: austDay });
            $('#year').text(austDay.getFullYear());
        });
</script>

这是 MVC 控制器的方法︰

public ActionResult GetDownDate()
    {
        string dtime = db.Maintanance.FirstOrDefault().Time;
        string[] time = dtime.Split(':');

        //int hours = db.Maintanance.FirstOrDefault().date.Hour+;
        DateTime downDate = db.Maintanance.FirstOrDefault().date;
        int minutes = db.Maintanance.FirstOrDefault().duration + Convert.ToInt32(time[1]);

        DateTime newDate = new DateTime(downDate.Year, downDate.Month, downDate.Day, Convert.ToInt32(time[0]), minutes, 0);
        DateTime currentDate = System.DateTime.Now;

        DateTime[] dateTimes = new DateTime[]
        {
            newDate,currentDate
        };

        return Json(new
        {
            Value = dateTimes

        }, JsonRequestBehavior.AllowGet
            );
    }

谢谢

解决方法 1:

每当您对 Ajax 成功归来,您需要使用的 rertun JSON 不返回像下面代码视图

 public ActionResult GetDownDate()

    {
    .............

    DateTime downDate = db.Maintanance.FirstOrDefault().date;
                int minutes = db.Maintanance.FirstOrDefault().duration + Convert.ToInt32(time[1]);

                DateTime newDate = new DateTime(downDate.Year, downDate.Month, downDate.Day, Convert.ToInt32(time[0]), minutes, 0);
    return Json(new { date = newDate }, JsonRequestBehavior.AllowGet);
    }

在成功功能就像

success: function (data) {
//data will contain date objects
}
赞助商