最近在做一个项目 ,是在老项目上添加功能 , 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格式的, 我还在找方法 ..... 找到就会共享
}
以上的代码 我自己测试过 ,可以运行的 .