public static string GameScoreAdd(string uname,string uphone)
{
string msg = "";
GameScore game = new GameScore();
......
var share = new { msg = msg };
return JavaScriptConvert.SerializeObject(share);
}
//提交用户数据 $("#submit02").click(function () { var UName = $("#uname").val(); var Phone = $("#uphone").val(); alert("用户名:" + UName + " 手机号:" + Phone); $.ajax({ type: "post", url: "GamePlay.aspx/GameScoreAdd", data: "{'uname':'" + UName + "','uphone':'" + Phone+ "'}", contentType: "application/json;charset=utf-8", dataType: "json", success: function (r) { var s1 = strToJson(r.d); alert(s1.msg); }, error: function (e) { alert("错误是:" + e.responseText); } }); })
c#中,js调用后台方法,出现处理请求时出错,{"Message":"处理请求时出错。","StackTrace":"","ExceptionType":""}
是你调用"GamePlay.aspx/GameScoreAdd"里面方法的错误,加断点调试下
好高级啊看不懂╮(╯▽╰)╭
你自己启动调试看看什么地方出错了不就行了么?
你自己启动调试看看什么地方出错了不就行了么?
GamePlay.aspx/GameScoreAdd ??? 从来没有见过这种调用方式!!!
你可以弄个ashx的页面去处理数据,你返回的的的JSON数据,如果用aspx还需要手动的去掉前端页面的一些html标签。
你的c#后台方法是不是没有全部贴出,有没有打上[WebMethod]
[WebMethod] public static string GameScoreAdd(string uname, string uphone) { return ""; }
如果不是这里的问题,就打断点调试,看是在那里出的问题,
//常用的调用web 静态方法
[WebMethod]
public static string GetUserName()
{
//TODO
}
如果要在这个方法里操作session,那还得将WebMethod的EnableSession 属性设为true 。即:
[WebMethod(EnableSession = true)]//或[WebMethod(true)]
public static string GetUserName()
{
//TODO
}
Jquery 脚本代码:
$.ajax({
type: "POST",
contentType: "application/json",
url: "WebForm2.aspx/GetUserName",
data: "{}",
dataType: "json",
success: function(){.......}
});
type:请求的类型,这里必须用post 。WebMethod方法只接受post类型的请求。
contentType:发送信息至服务器时内容编码类型。我们这里一定要用 application/json 。
最好打上断点调试一下。
url: "GamePlay.aspx/GameScoreAdd"
你这个url看不出来你用的是asp.net WebForm还是asp.net mvc
你在GameScoreAdd这个方法里面打断点能进去么?
两种方式总有一种方式适合你(附有demo)。
方式1:.NET前台JS调用后台C#方法(函数)
方式2:.NET前台按钮实时调用C#后台方法(函数)
http://user.qzone.qq.com/669247240/blog/1302317905