在我的数据网格设置中使用extjs,我将代理api设置为...
api: {
read: '/Admin/BillRateData.aspx/Get?rbl=asd'
},
和我的网络方法......
public static List<Something> Get(string rbl)
Firebug中的回复是......
{"Message":"Invalid JSON primitive: asd.","StackTrace":" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n at System.Web.Script.Services.RestHandler.GetRawParamsFromGetRequest(HttpContext context, JavaScriptSerializer serializer, WebServiceMethodData methodData)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"}
我发送的数据看起来像这样...... 当我发信件时......
MyParameter是的 _dc 1371570036523 限制25 第1页 rbl asd 从0开始
当我发送号码时......
MyParameter是的 _dc 1371570093718 限制25 第1页 rbl 123 从0开始
但它不会在web方法上遇到我的断点,并且JS抛出“读取操作失败:内部服务器错误”。但是,如果我将网址更改为“rbl = 123”,它可以正常工作。它似乎只接受数值。这是怎么回事?!
答案 0 :(得分:1)
您是否尝试在字符串值周围加上双引号?你得到的“原始”错误听起来像是试图将asd解释为已经定义的变量,但它实际上是一个字符串文字(但它不知道)。这也可以解释为什么它似乎适用于数字(你不会在数字周围加上双引号)。