Tôi có một phương thức web đơn giản và gọi ajax và tiếp tục nhận được lỗi nói rằng nó không thể chuyển đổi chuỗi thành đối tượng IDictionary ???Truyền tham số tới WebMethod với jQuery Ajax
Đây là cuộc gọi 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) { . . . .
Đây là 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
Dưới đây là những gì tôi nhìn thấy từ Firebug:
Tiêu đề phản hồi
Server: Microsoft-IIS /5.1
Ngày: Thứ năm, 09 tháng 4 năm 2009 21:43:59 GMT
jsonerror: true
Cache-Control: riêng
Loại nội dung: application/json; charset = utf-8
Content-Length: 1331
POST: "{\" ID \ ": \" 4 \ "}"
ỨNG PHÓ:
{ "Message": "Không thể chuyển đổi đối tượng thuộc loại \ u0027System.String \ u0027 để nhập \ u0027System.Collections .Generic.IDictionary`2 [System.String, System.Object] \ u0027 "," StackTrace ":" tại System.Web.Script.Serialization .ObjectConverter.ConvertObjectToTypeInternal (Đối tượng o, Kiểu loại, Trình sắp xếp JavaScriptSerializer, Boolean throwOnError, Object & conversionObject) \ r \ n tại System.Web.Scri pt.Serialization.ObjectConverter.ConvertObjectToTypeMain (Đối tượng o, Loại loại, Trình sắp xếp JavaScriptSerializer, Boolean throwOnError, Đối tượng & transformationObject ) \ r \ n tại System.Web.Script.Serialization.ObjectConverter.ConvertObjectToType (Object o, Loại loại, JavaScriptSerializer serializer) \ r \ n tại System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit) \ r \ n tại System.Web.Script.Serialization.JavaScriptSerializer .Deserialize [T] (Chuỗi đầu vào) \ r \ n tại System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest (HttpContext context, JavaScriptSerializer serializer) \ r \ n tại System.Web.Script.Services.RestHandler .GetRawParams (WebServiceMethodData methodD ata, HttpContext ngữ cảnh) \ r \ n tại System.Web.Script.Services .RestHandler.ExecuteWebServiceCall (HttpContext bối cảnh, WebServiceMethodData methodData)", "ExceptionType" : "System.InvalidOperationException"}
Bất cứ ai có bất cứ ý tưởng về điều này? Cảm ơn!!
Bạn là người đàn ông. Cảm ơn bạn rất nhiều Chris! Tôi đã thêm vào đây: var jsonText = JSON.stringify ({ID: rowid}); sau khi đọc bài viết của bạn. Tôi đã đọc rất nhiều bài báo cho thấy các tham số truyền với dấu ngoặc kép. Của bạn là người đầu tiên tôi đã đọc giải thích và khắc phục nó. Mucho gracias! –
Rất vui được giúp đỡ. –