0

我有此错误无法将类型 \u0027System.String\u0027 的对象转换为类型 \u0027System.Collections.Generic.Dictionary 2[System.String,System.Int32]\u0027","StackTrace":" at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject)\r\n at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject)\r\n at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToType(Object o, Type type, JavaScriptSerializer serializer)\r\n at System.Web.Script.Services.WebServiceMethodData.StrongTypeParameters(IDictionary2 rawParams)\r\n 在 System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(对象目标,IDictionary 2 parameters)\r\n at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary2 rawParams)\r\n 在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException

当我使用 Dictionary 将数组传递给 WebMethod 时

4

1 回答 1

0

如果它是 webapi 的 web 方法,那么您不能将列表或字典类型的对象传递给方法,您只需要传递字符串参数,要传递此对象,您需要将它们序列化为字符串,然后您可以将它们反序列化回使用该字符串的列表或字典对象。

使用 Web 方法的代码:

Dictionary<string,int> objstring = new Dictionary<string,int>
var serializer = new JavaScriptSerializer();
var serializedstring = serializer.Serialize(objstring);

然后在参数中传递序列化字符串。

反序列化时执行相同操作,只需从 webapi 方法中的序列化程序对象调用反序列化方法。

我希望这可以帮助你。

于 2013-02-22T11:47:38.027 回答