【发布时间】:2011-06-05 01:31:25
【问题描述】:
我有一个 WebMethod,其参数定义为 DateTime。当我这样称呼时
webservice,我得到这个错误:
在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject() 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 深度)在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 深度)在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 深度)在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(字符串 输入,Int32 深度限制, JavaScriptSerializer 序列化程序)在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer 序列化程序,字符串输入,类型类型, Int32 depthLimit) 在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](字符串 输入)在 System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext 上下文,JavaScriptSerializer 序列化器)在 System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData 方法数据,HttpContext 上下文)在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext 上下文,WebServiceMethodData 方法数据)"
这是我的网络服务:
/// <summary>
/// Summary description for AgendamentoService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AgendamentoService : System.Web.Services.WebService
{
public AgendamentoService()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public CompromissoWekCalendarVO[] GetCompromissos(int id_pessoa, DateTime start, DateTime end)
{
bo.CompromissoBO compBO = new bo.CompromissoBO();
return compBO.Get(id_pessoa,start, end).ToArray();
}
}
这里是我的客户端代码:
var params = '{id_pessoa: "' + id_pessoa + '", start:/Date('+ start.getTime()+')/, end:/Date(' + end.getTime()+')/}';
$.ajax(
{
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
url: '<%= this.ResolveClientUrl("~/services/misc/AgendamentoService.asmx/GetCompromissos") %>',
data: params,
success: function (json) {
if ($.isArray(json.d)) {
$.each(json.d, function(key, value) {
value.start = getJsonDate(value.start);
value.end = getJsonDate(value.end);
});
}
callback(json.d);
}
});
其中 'start' 和 'end' 时间是两个 javascript 'Date' 对象。
【问题讨论】:
标签: asp.net json asmx webservice-client