Organizational Research By

Surprising Reserch Topic

how to pass a datetime value to a webmethod asmx using -'asp.net,json,asmx,webservice-client'


how to pass a datetime value to a webmethod asmx  using -'asp.net,json,asmx,webservice-client'

I have a WebMethod with a parameter defined as DateTime. When I call that

webservice, I get this error:


  at
  System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()
  at
  System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32
  depth) at
  System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32
  depth) at
  System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32
  depth) at
  System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String
  input, Int32 depthLimit,
  JavaScriptSerializer serializer) at
  System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer
  serializer, String input, Type type,
  Int32 depthLimit) at
  System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String
  input) at
  System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext
  context, JavaScriptSerializer
  serializer) at
  System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData
  methodData, HttpContext context) at
  System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext
  context, WebServiceMethodData
  methodData)"


This is my WebService:

/// <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();
    }

}


And here, my client side code:

 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);                                 

                             }  
                         });


Where 'start' and 'end' time are two javascript 'Date' objects.
    
asked Sep 7, 2015 by rajesh
0 votes
19 views



Related Hot Questions



Government Jobs Opening


...