2

是否可以将 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)/),则会收到错误消息:

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

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

谢谢你的帮助!

4

2 回答 2

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")}
于 2012-10-19T11:20:40.720 回答
0

您可以将参数类型更改为字符串,然后您可以将该字符串转换为您想要的任何类型

   public void Save(String date){
     *Code*
    }
于 2012-10-19T09:55:03.987 回答