Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Asp.net MVC和JSON日期格式异常-值'/日期(251071200000)/x27;对于出生日期无效_Jquery_Asp.net Mvc_Json_Datetime - Fatal编程技术网

Jquery Asp.net MVC和JSON日期格式异常-值'/日期(251071200000)/x27;对于出生日期无效

Jquery Asp.net MVC和JSON日期格式异常-值'/日期(251071200000)/x27;对于出生日期无效,jquery,asp.net-mvc,json,datetime,Jquery,Asp.net Mvc,Json,Datetime,我在将JSON对象发回Asp.net MVC时遇到以下异常: "The value '/Date(251071200000)/' is not valid for Date Of Birth." 在Firebug中,肯定有一个值被发回,所以我假设模型绑定中存在一些问题。如果我跟踪DateOfBirth属性的set部分,“value”为null 设置是 具有DateOfBirth属性的C#POCO对象,如下所示: public DateTime? DateOfBirth {

我在将JSON对象发回Asp.net MVC时遇到以下异常:

"The value '/Date(251071200000)/' is not valid for Date Of Birth."
在Firebug中,肯定有一个值被发回,所以我假设模型绑定中存在一些问题。如果我跟踪DateOfBirth属性的set部分,“value”为null


设置是 具有DateOfBirth属性的C#POCO对象,如下所示:

    public DateTime? DateOfBirth
    {
        get
        {
            return ClientDto.Contact.DateOfBirth;
        }
        set
        {
            ClientDto.Contact.DateOfBirth = value;
        }
    }
$.ajax({
    url: this.editForm.prop("action"),

    data: kendo.stringify(copy),  //can be replaced with JSON.stringify

    type: "POST",

    contentType: "application/json; charset=utf-8",

    success: function (args)
    {
        //done
    }
});
控制器操作将JSON数据发送到调用AJAX函数,如下所示(注意:我们在这里尝试了两个选项): 备选案文1:

/*...extract and initialize a profile object...*/
return Json(profile, JsonRequestBehavior.AllowGet);
备选案文2:

/*...extract and initialize a profile object...*/
return Json(new JavaScriptSerializer().Serialize(profile), JsonRequestBehavior.AllowGet);
我们从客户端发回JSON数据,如下所示:

    public DateTime? DateOfBirth
    {
        get
        {
            return ClientDto.Contact.DateOfBirth;
        }
        set
        {
            ClientDto.Contact.DateOfBirth = value;
        }
    }
$.ajax({
    url: this.editForm.prop("action"),

    data: kendo.stringify(copy),  //can be replaced with JSON.stringify

    type: "POST",

    contentType: "application/json; charset=utf-8",

    success: function (args)
    {
        //done
    }
});

我对这个问题不是很清楚,但假设您确实获得了一个值返回到MVC,并且,如果错误与JSON日期格式相关,即“/date(251071200000)/”,那么我也有同样的问题

基本上,您传递的是日期的JSON格式。您需要将日期(在客户端或服务器上)转换为正确的日期格式

我使用下面的函数将“/Date(210355200000)/”转换为“1/9/1976”

function fromJsonToJavaScriptDate(value) {
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(value);
var dt = new Date(parseFloat(results[1]));
return dt.getDate() + "/" + (dt.getMonth() + 1) + "/" + dt.getFullYear();}
您可以在客户端上使用此功能,如

$dob = fromJsonToJavaScriptDate([your date value])
您可以找到在服务器上转换此json日期格式的方法,如下链接所述

我希望这有帮助