首页 新闻 搜索 专区 学院

ajax 调用后台方法

0
悬赏园豆:5 [已关闭问题]

大家好,第一次在博客园发问,以后多多讨论

一直以来我对ajax或者是js方法直接调用后台CS中的方法有些疑问,想请大家帮忙解决下

我曾使用过的方法有三种:

1 在页面中加入隐藏的button,并定义了事件,然后执行js的$("#隐藏btnID").click()来 执行后台方法

2 用ajaxPro来执行

3 用ajax的url:页面地址/(静态)方法名称 来执行

在这种方法中,方法必须要求是静态的,所以例如在_default这个页面中 ,示例如下

public partial class _Default : System.Web.UI.Page
{
    static int sVar = 1;
    int abc = 3;
    int result;

    [WebMethod]
    public static string AjaxGetMethod()
    {
        sVar = 2; //静态变量可以直接调用

        _Default d = new _Default(); //如果不实例化 就不能使用result,abc
        NoStaticFun nsf = new NoStaticFun(); //如果不实例化 就不能使用test

        d.result = nsf.test();
        d.result = d.abc;
       
       return d.result;
    }

}

public class NoStaticFun
{
   
    public int test()
    {
        return 2;
    }
}

在这个示例中,我进行了标注,我想知道有没有什么好方法

hhsimon的主页 hhsimon | 初学一级 | 园豆:5
提问于:2009-10-17 11:20
< >
分享
其他回答(1)
0

静态方法调用普通方法时一定要实例化

rjzou | 园豆:478 (菜鸟二级) | 2009-10-17 11:58
0

我记得AjaxGetMethod不一定必须是静态的啊。

你看看这

http://bbs.bccn.net/thread-281800-1-1.html

Frank Xu Lei | 园豆:1860 (小虾三级) | 2009-10-17 17:33
你好,感谢你的回答 第二种方法用ajaxPro是不需要静态方法的。 我说的是第三种方法在调用后台方法时必须要调用静态方法。 例如: $.ajax({ url:default.aspx/AjaxGetMethod type: "Post", data:param, dataType: 'json', async: false, complete: function(response, msg) { if (msg == "success") { var jsonstring = eval("[" + response.responseText + "]"); $("#"+txtDscpClientID).val(jsonstring[0]['txtDscpClientID']); } else { alert("数据加载失败"); } } });
支持(0) 反对(0) hhsimon | 园豆:5 (初学一级) | 2009-10-19 09:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册