使用ajax将日期值从Kendo DatePicker传递到控制器导致此“01/01/0001 12:00:00 AM”值传递给我的控制器

时间:2017-02-16 07:58:46

标签: jquery ajax kendo-ui asp.net-mvc-5 kendo-datepicker

这是我的观看代码

<td>
            <div>
                @Html.Kendo().DatePickerFor(model => model.Start)
                <br />
            </div>
        </td>
        <td>
            <div>
                @Html.Kendo().DatePickerFor(model => model.End)
                <br />
                <br />
            </div>
        </td>

这是我的剧本

function downloadReport() {

    $("#popUpWindow").data("kendoWindow").center().open();

    var End = $("#End").val();
    var Start = $("#Start").val();


    var Dates = { start: Start, end: End }


    $.ajax({
        url: "@Url.Action("DownloadReport", "Report")",
        cache: false,
        type: 'POST',
        contentType: 'application/json;charset=utf-8',
        data: JSON.stringify({ report : Dates }  ),
     success: function (result) {
       //some code
    },
     error: 
         function (xhr, ajaxOptions, thrownError) {
        //some code
    }
});
}

我在控制器上收到的值是01/01/0001 12:00:00 Am。 脚本选取的值格式为dd / mm / yyyy。 为什么我无法传递正确的值?请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

我已经多次遇到过这个问题,并提出了一个快速解决方案,在处理剑道控件的日期时似乎对我有用。

function parseDate(value, format) {
    if (value === null) {
        return '-';
    }
    else {

        if (format === null || format === undefined)
        {
            format = 'dd MMM yy'; 
        }

        return kendo.format("{0:" + format + "}", value);
    }
}

此函数接受任何date值,然后您可以指定希望返回值的格式,例如。 ddd,dd MMM yyyy等。

答案 1 :(得分:0)

经过一些研究后,我使用此方法传递日期时间值。

    $("#popUpWindow").data("kendoWindow").center().open();

    var End = $("#End").val().toString();


    var Start = $("#Start").val();



    var Dates = "{'start':'" + Start + "', 'end':'" + End + "'}";

我没有正确地分配值来从Ajax发送。这就是问题所在。 感谢您的帮助@David