asp.net 2.0 ajax调用 aspx 后台指定函数

最近在做一个项目 ,是在老项目上添加功能 , asp.net 的 最传统的那种写法, 没有 ajax .

以前做过一些 mvc 的, 配合 ajax 还是挺方便的 . 但是 这个 asp.net 我弄了好几天才搞定 . 下面说一下 其中的几点注意事项 .

1- 需要修改 webconfig 文件
asp.net 2.0 不支持直接调用 aspx对应 的后台的指定函数 , 需要在webconfig里的 httpModules 节点里 增加这个. (如果原来有这个节点, 就添加中间的语句即可

<httpModules>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules> 

2- aspx.cs 代码 需要添加 using System.Web.Services; 这个引用

3- 需要ajax调用的函数 必须添加 [WebMethod] , 具体 后面 代码示例有显示

下面是代码示例
前台 aspx页面 添加一个按钮
并且需要 增加 对 jquery 的引用

<!-- html代码 --> 
<input type  ="button" id="btn_test" Text="test" />
//js 脚本 
$("#btn_test").click(function() {
     $.ajax({
         type: "post", //要用post方式
         url: "Comfirm.aspx/rtn_test", //方法所在页面和方法名   页面/方法
         contentType: "application/json; charset=utf-8", 
         data:"{'aa':'bb'}",        // 即使没有数据传送 也需要加上 
   // 无数据传送   data:{}      , 有数据传送  data:""  需要data的值是一个双引号括起来的字符串,  所有参数都需要括到这里 , 组合成一个长字符串 , 冒号前面的是变量名, 后面是值
         dataType: "json", 
         success: function(data) {
             alert(data.d); //返回的数据用data.d获取内容
// 如果后台  只返回 的是 string 值 , 那么 它就在 data.d 里 
         },
         error: function(err) {
             alert(err);
         }    
     });
 });
//后台代码   
 [WebMethod]
    public static string rtn_test( string   aa  )
    {
        return "ok";
// 关于如何返回 json格式的,  我还在找方法 .....  找到就会共享
    }

以上的代码 我自己测试过 ,可以运行的 .

发表评论