J'ai une simple méthode web et un appel ajax et continue de recevoir une erreur en disant qu'il ne peut pas convertir une chaîne en un objet IDictionary ???Passage de paramètre à WebMethod avec jQuery Ajax
Voici l'appel ajax:
var params = '{"ID":"' + rowid + '"}';
$.ajax({
url: 'EDI.asmx/GetPartnerDetails',
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(params),
dataType: "json", //not json . let me try to parse
success: function(msg, st) { . . . .
Voici le WEBMETHOD:
<WebMethod()> _
Public Function GetPartnerDetails(ByVal ID As String) As String
'Dim objParam As IDictionary = CType(JsonConvert.DeserializeObject(ID), IDictionary)
'Dim rowID As String = objParam("ID")
Dim objController As New HealthComp.BLL.X12Partners.TradingPartnersController
Dim objInfo As TradingPartnersInfo = objController.FetchByPartnerID(Int32.Parse(ID))
Return JsonConvert.SerializeObject(objInfo)
End Function
Voici ce que je vois de Firebug:
têtes de réponse
Serveur: Microsoft-IIS /5.1
Date: jeu, 09 avr. 2009 21:43:59 GMT
jsonerror: true
Cache-Control: privé
Type de contenu: application/json; charset = utf-8
Content-Length: 1331
POST: "{\" ID \ ": \" 4 \ "}"
RÉPONSE:
{ "message": "Impossible convertir l'objet de type \ u0027System.String \ u0027 en type \ u0027System.Collections .Generic.IDictionary`2 [System.String, System.Object] \ u0027 "," StackTrace ":" à System.Web.Script.Serialization .ObjectConverter.ConvertObjectToTypeInternal (Object o, Type de type, JavaScriptSerializer serializer, Boolean throwOnError, Objet & convertedObject) \ r \ n at System.Web.Scri pt.Serialization.ObjectConverter.ConvertObjectToTypeMain (Object o, type de type, JavaScriptSerializer sérialiseur, Boolean throwOnError, objet & convertedObject) \ r \ n à System.Web.Script.Serialization.ObjectConverter.ConvertObjectToType (o de l'objet, le type de type, JavaScriptSerializer serializer) \ r \ n à System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer sérialiseur, entrée de chaîne, Type de type, Int32 depthLimit) \ r \ n à System.Web.Script.Serialization.JavaScriptSerializer .Deserialize [T] (Entrée de chaîne) \ r \ n à System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest (contexte HttpContext, sérialiseur JavaScriptSerializer) \ r \ n à System.Web.Script.Services.RestHandler .GetRawParams (WebServiceMethodData méthodeD ata, HttpContext contexte) \ r \ n à System.Web.Script.Services .RestHandler.ExecuteWebServiceCall (contexte HttpContext, WebServiceMethodData methodData) », "ExceptionType" : "System.InvalidOperationException"}
Quelqu'un a des idées à propos de ça? Merci!!
Vous êtes l'homme. Merci beaucoup Chris! J'ai ajouté ceci: var jsonText = JSON.stringify ({ID: rowid}); après avoir lu votre article. J'ai lu une tonne d'articles qui montraient des paramètres de passage avec des citations. Le vôtre est le premier que j'ai lu qui a expliqué ET FIXÉ. Mucho gracias! –
Heureux d'avoir aidé. –