jQuery通过ajax调用ASP.NET函数
2015-03-19 22:15
204 查看
PHP自然不在话下,如今要用ASP.NET,折腾了一大通,终于好了,记录一下。
首先,使用了AjaxPro,这玩意果然强大,直接调用了C#中的函数,正用着,发现jQuery不行了,网上搜了一大通,终究没法解决,决定看看能否放弃它。
当然,也只能从网上搜索了。
先找到了个简单了,欣喜若狂。且看为何:
1、jQuery使用与用PHP时一样,丝毫代码不动。
2、在C#代码中只要在Page_Load函数中加入以下代码:
但是,试一下中文,出现了乱码。
网搜路漫漫,耐何无果。解决到最好是出现偶数个汉字可以解码,单数个汉字就...
当然,最后是找到了解决问题的办法了,直接上代码:
1、web.config中添加:
2、JS代码:
3、C#代码:
这样,保存到数据成功,不存在中文乱码问题。
首先,使用了AjaxPro,这玩意果然强大,直接调用了C#中的函数,正用着,发现jQuery不行了,网上搜了一大通,终究没法解决,决定看看能否放弃它。
当然,也只能从网上搜索了。
先找到了个简单了,欣喜若狂。且看为何:
1、jQuery使用与用PHP时一样,丝毫代码不动。
2、在C#代码中只要在Page_Load函数中加入以下代码:
if (!this.IsPostBack) { //未能解决汉字的乱码问题 if ((Request.QueryString["ac"] ?? "") == "ac1") { string strSql = "select * from DJ1 where F1='DJ'"; DataRowCollection rows = DbHelperSQL.Query(strSql).Tables[0].Rows; string R = "["; for (int i = 0; i < rows.Count; i++) { if (i > 0) R += ","; R += "{ID:" + rows[i]["ID"].ToString() + ",K1:'" + rows[i]["K1"].ToString() + "'" + ",V:'" + rows[i]["V"].ToString() + "'" + "}"; } R += "]"; Response.Write(R); Response.End(); return; } else if ((Request.QueryString["ac"] ?? "") == "ac2") { string s1 = Request.Form["K1"]; string s2 = Request.Form["V"]; string sql = "INSERT INTO DJ1 (ID, F1, K1, V) VALUES (" + "DJ_ID.nextval," + "'DJ'," + "'" + code(Request.Form["K1"]) + "'," + "'" + code(Request.Form["V"]) + "')"; int n = DbHelperSQL.ExecuteSql(sql); if (n == 1) { sql = "SELECT DJ_ID.nextval from dual"; string sid = DbHelperSQL.Query(sql).Tables[0].Rows[0][0].ToString(); Response.Write("{result:1,ID:'" + sid + "'}"); Response.End(); return; } else { Response.Write("{result:0,error:'添加一条数据失败'}"); Response.End(); return; } } }这样,数据库操作成功!
但是,试一下中文,出现了乱码。
网搜路漫漫,耐何无果。解决到最好是出现偶数个汉字可以解码,单数个汉字就...
当然,最后是找到了解决问题的办法了,直接上代码:
1、web.config中添加:
<httpModules> <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </httpModules>
2、JS代码:
$.ajax({ type: "Post", url: mypage.aspx/func_ac2, data: "{'K1':'我是','V':'XXX'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { alert(data.d); }, error: function (err) { alert(err); } });
3、C#代码:
[WebMethod] public static string[][] func_ac1() { string strSql = "select * from DJ1 where F1='DJ'"; DataRowCollection rows = DbHelperSQL.Query(strSql).Tables[0].Rows; string[][] R =new string[rows.Count][]; for (int i = 0; i < rows.Count; i++) { R[i]=new string[]{ rows[i]["ID"].ToString(), rows[i]["K1"].ToString() , rows[i]["V"].ToString()}; } return R; }
[WebMethod] public static string[] func_ac2(string K1, string V) { string sql = "INSERT INTO DJ1 (ID, F1, K1, V) VALUES (" + "DJ_ID.nextval," + "'分类'," + "'" + K1 + "'," + "'" + V + "')"; int n = DbHelperSQL.ExecuteSql(sql); if (n == 1) { sql = "SELECT ID.nextval from dual"; string sid = DbHelperSQL.Query(sql).Tables[0].Rows[0][0].ToString(); return new string[]{"1",sid}; } else { return new string[] { "0", "添加一条数据失败" }; } }
这样,保存到数据成功,不存在中文乱码问题。
相关文章推荐
- jquery中通过ajax调用webservice传递数组参数的问题
- jquery中的ajax方法怎样通过JSONP进行远程调用
- 在jquery中的ajax方法怎样通过JSONP进行远程调用
- 从ajax获取的数据无法通过Jquery选择器来调用事件
- jQuery之异步Ajax请求使用 通过传递参数来调用后台方法返回状态
- 通过jQuery调用ASP.NET的AJAX
- 前段html通过js拼接url?name=XXX&gender=XXX,然后调用jQuery的ajax,往后台传参数,前端alert参数是正常的,后端的参数是乱码
- jQuery中通过ajax调用webservice传递数组参数的问题实例详解
- jquery中的ajax方法怎样通过JSONP进行远程调用
- 通过jQuery调用ASP.NET的AJAX
- jquery中通过ajax调用webservice传递数组参数的问题
- jquery高版本的ajax调用
- 通过Ajax+jquery实现的动态增加一组查询条件的实例
- Jquery + Ajax调用webService实例代码(asp.net)
- 怎样利用JQuery的$.ajax()调用asp.net的后台
- 在ASP.net MVC里用Jquery的Ajax功能调用相关LinqtoSQL生成的类出现错误---循环引用
- jquery同步调用ajax
- jquery ajax调用asp.net 后台方法
- Jquery:Ajax解析XML数据(同步及异步调用)