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
Asp.net mvc WebApi-发布错误的时间_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

Asp.net mvc WebApi-发布错误的时间

Asp.net mvc WebApi-发布错误的时间,asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,Im向api服务发布数据(模型),发送时的时间是正确的,但接收api减去1小时,为什么会发生这种情况,如何解决 正在准备发送请求: [HttpPost] public JsonResult RequestBooking(string model) { var e = new BookingRequest(); var objJavascript = new JavaScriptSerializer(); e = objJavascript.Deserialize<

Im向api服务发布数据(模型),发送时的时间是正确的,但接收api减去1小时,为什么会发生这种情况,如何解决

正在准备发送请求:

[HttpPost]
public JsonResult RequestBooking(string model)
{

    var e = new BookingRequest();
    var objJavascript = new JavaScriptSerializer();

    e = objJavascript.Deserialize<BookingRequest>(model);
    //e.AppointmentDate = 21/09/2016 13:00:00
    string addressRoute = "api.domain.com/Booking/Post";
    using (var booking = new HttpClient())
    {
        booking.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        var response = booking.PostAsync(addressRoute, new StringContent(new JavaScriptSerializer().Serialize(e), Encoding.UTF8, "application/json")).Result;
        return Json(response, JsonRequestBehavior.AllowGet);
    }
}
[HttpPost]
公共JsonResult RequestBooking(字符串模型)
{
var e=新预订请求();
var objJavascript=新的JavaScriptSerializer();
e=objJavascript.Deserialize(model);
//e、 任命日期=21/09/2016 13:00:00
字符串addressRoute=“api.domain.com/Booking/Post”;
使用(var booking=newhttpclient())
{
booking.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
var response=booking.PostAsync(addressRoute,新的StringContent(新的JavaScriptSerializer().Serialize(e),Encoding.UTF8,“application/json”))。结果;
返回Json(response,JsonRequestBehavior.AllowGet);
}
}
收到时:

public HttpResponseMessage PostRequest(DomainObjects.BookingRequest request)
{
     //request.Appointment = 21/09/2016 12:00:00 <----
}
公共HttpResponseMessage PostRequest(DomainObjects.BookingRequest) {
//request.Appointment=21/09/2016 12:00:00可能是由于时区差异,但我只是猜测,因为您从未发布发送到服务器的时间的实际字符串表示形式。当使用客户端/服务器体系结构(包括web api)时您应该始终使用format和作为UTC发送datetime实例,或者使用实例中指定的偏移量(.net type=DateTimeOffset)…旁注:过帐时请正确格式化您的代码好吗?抱歉,unix timestap正在发送(到接收者)1474459200000,如何转换为ISO8601,因为这是一个新的JavaScriptSerializer().Serialize(e)?这真的很重要吗?从你发布的信息中我看不出来:
/e.AppointmentDate=21/09/2016 13:00:00
我提到它是为了确认发送时正在进行转换。正确,AppointmentDate是一种DateTime类型,可能是由于时区差异,但我只是猜测,因为你从未发布实际字符串发送到服务器的时间的偏移量。使用客户端/服务器体系结构(包括web api)时,应始终使用格式和UTC或实例中指定的偏移量(.net type=DateTimeOffset)发送日期时间实例…旁注:发布时请正确格式化您的代码好吗?对不起,unix timestap正在发送(到接收方)1474459200000,我如何转换为ISO8601,因为这是新的JavaScriptSerializer()。序列化(e)?这真的很重要吗?从你发布的信息中我看不出来:
/e.AppointmentDate=21/09/2016 13:00:00
我提到它是为了确认发送时正在进行转换。正确,AppointmentDate是一种日期时间