将DateTime参数传递给ASP.NET Web Service

Mat*_*son 2 asp.net asmx momentjs

是否可以将DateTime参数发布到ASMX Web服务内的Web方法(使用JSON序列化RPC样式调用)?

我正在向浏览器发送一个DateTime,并以/ Date(1350639464100 + 0100)/的形式序列化.然后我可以使用优秀的moment.js库来解析日期,在页面上显示等.

我的问题是使用AJAX帖子将此日期返回给服务器到我的Web服务.我的web方法看起来像这样:

[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Save(DateTime date)
{
    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试以相同的格式发送日期(/ Date(1350639464100 + 0100)/),那么我收到一个错误:

/ Date(1350639464100 + 0100)/不是DateTime的有效值.

是否有更好的替代方法将其作为字符串发送然后解析服务器上的值?理想情况下,我希望能够在往返服务器的往返中发送对象,而无需更改它们可能包含的任何日期属性.

谢谢你的帮助!

Mat*_*son 7

我现在有这个工作如下.

使用DateTime参数的Web方法:

[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Save(DateTime date)
{
    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

AJAX发布到Web方法将日期作为字符串发送(以国际格式避免本地化问题):

{"date": "2012-10-19"}
Run Code Online (Sandbox Code Playgroud)

或者,使用moment.js:

{"date": moment().format("YYYY-MM-DD HH:mm:ss")}
Run Code Online (Sandbox Code Playgroud)