首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

.net Jquery 调用后台带参数方法的有关问题

2012-03-24 
.net Jquery 调用后台带参数方法的问题我前段的js代码如下JScript code$.ajax({type: POST,contentType:

.net Jquery 调用后台带参数方法的问题
我前段的js代码如下

JScript code
$.ajax({                            type: "POST",                            contentType: "application/json; charset=utf-8",                            data: { "mid": d[0], "repost": d[1] },//d[0]=3395169326383796,d[1]=71                            url: "Analytics.aspx/GetChartById",                            dataType: "json",                            success: function (cdata) {                                var cjson = eval(cdata);                                var chart = [];                                $.each(cjson, function (j, c) {                                    chart.push([c.Hour, c.Count]);                                });                                $("#chart_" + d[0] + "").jqChart({                                    title: { text: 'JavaScript Array' },                                    series: [                                                {                                                    type: 'line',                                                    data: chart,                                                    markers: { type: 'circle', size: 8 }                                                }                                            ]                                });                            },                            error: function (errorString) {                                $.each(errorString, function (e, err) {                                    alert(err);                                });                            }                        });


后台C#代码
C# code
        [WebMethod]        public static string GetChartById(string mid,string repost)        {            return OAuth.SinaOuthBase.GetRepostDate(Int64.Parse(mid),int.Parse(repost));        }

调用的时候总是报出 http500的错误 用vs的断点 运行的时候却无法进入断点debug
遍历js的错误代码找到如下说明:
Message":"无效的 JSON 基元: mid。","StackTrace":" 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\r\n 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n 在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n 在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n 在 System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n 在 System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n 在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException

我特意 用.net的button事件写了一个方法来验证参数 发现可以正常调用方法
C# code
        protected void btn_GetYesterdayData_Click(object sender, EventArgs e)        {            //Response.Write(OAuth.SinaOuthBase.GetRepostDate(3395169326383796,71));        }



[解决办法]
那你调用GetChartById(string mid,string repost)时,填入参数"3395169326383796","71"不行?
[解决办法]
data: '{ "mid": "'+d[0]+'", "repost": "'+d[1]+'" }'




[解决办法]

HTML code
data: "{ 'mid': '"+d[0]+"', 'repost': '"+d[1]+"' }"
[解决办法]
格式..

热点排行