是否可以将DateTime参数发布到ASMX Web服务中的Web方法(使用JSON序列化RPC样式调用)?
我正在向浏览器发送一个DateTime,并以/ Date(1350639464100 + 0100)/的形式序列化。然后,我可以使用优秀的moment.js库来解析日期,将其显示在页面上等。
我的问题是使用AJAX帖子将此日期返回给我的Web服务。我的网络方法看起来像这样:
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Save(DateTime date)
{
// Do stuff
}
如果我尝试以相同的格式发送日期(/ Date(1350639464100 + 0100)/),那么我收到错误:
/日期(1350639464100 + 0100)/不是DateTime的有效值。
有没有更好的替代方法将其作为字符串发送然后解析服务器上的值?理想情况下,我希望能够在往返服务器的往返途中发送对象,而无需更改它们可能包含的任何日期属性。
感谢您的帮助!
答案 0 :(得分:7)
我现在的工作如下。
使用DateTime参数的Web方法:
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Save(DateTime date)
{
// Do stuff
}
AJAX发布到Web方法,将日期作为字符串发送(以国际格式避免本地化问题):
{"date": "2012-10-19"}
或使用moment.js:
{"date": moment().format("YYYY-MM-DD HH:mm:ss")}
答案 1 :(得分:0)
您可以将参数类型更改为字符串,然后您可以将该字符串转换为您想要的任何类型
public void Save(String date){
*Code*
}