【发布时间】:2012-08-14 11:04:58
【问题描述】:
我使用 WebClient 类在 mvc 3 项目中发送响应确认消息。消息从一个项目的一个操作方法发送到另一个项目的操作方法。 令人惊讶的是,日期参数是 3 小时后,在接收数据时。
例如,如果我的发送日期是“2012-08-14 13:42:50Z”,我会在另一边看到“2012-08-14 16:42:50Z”。 这是我案例的简化代码示例;
NameValueCollection ack = new NameValueCollection();
ack.Add("RESID", form.RESPONSE.ID.ToString());
ack.Add("A_DateTime", DateTime.Now.ToString("u")); //2012-08-14 13:42:50Z
using (var client = new WebClient())
{
client.Encoding = System.Text.Encoding.UTF8;
var result = client.UploadValues("http://localhost:11578/HPM/ResponseAck", ack);
}
//HPM Controller:
ResponseAck(HttpPostResponseAckMessage response)
{
//Here response.Date vale is 2012-08-14 16:42:50Z ???
}
在我看来,它是关于偷偷摸摸的小连载怪物因为某些文化特定问题而改变它。但我不知道真正的原因所以解决方案。
编辑:
public class HttpPostResponseAckMessage
{
public int RESID { get; set; }
public DateTime A_DateTime { get; set; }
}
【问题讨论】:
-
听起来像
DateTimeKind问题解析HttpPostResponseAckMessage... -
这可能是
"u"传递给ToString的问题。看看这个:stackoverflow.com/questions/915693/… -
"2012-08-14 13:42:50Z" 似乎是一种很好的格式,但也许 mvc 模型绑定器解析是问题所在。但我不知道这 3 个小时会在哪里。
标签: c# asp.net-mvc-3 webclient