欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在.net中,ajax如何调用本页数据源

程序员文章站 2022-06-18 09:53:18
近来我发现我一些同事,在用ajax时,用数据源,都喜欢重新新建一个页面.其实我是很不喜欢这种模式,主要原因,一是后期维护麻烦,还要去找哪些页面,二是不能调用一些本页原有的数据方法....

近来我发现我一些同事,在用ajax时,用数据源,都喜欢重新新建一个页面.其实我是很不喜欢这种模式,主要原因,一是后期维护麻烦,还要去找哪些页面,二是不能调用一些本页原有的数据方法.因此我在这里做了一个测试的案例,在这里,我们有2种方法来掉用本页的数据源方法. 一种是webservice 方法.  那就是在本页里添加webservice 方法.如下

 

    [webmethod]
    public static string getword(string arg)
    {
        return "调用 webservice,值是"+arg;
    }

这样就可以在客户端,前掉调用该方法了.如下

 var sdata = "https://www.cnblogs.com/incubator/archive/2011/12/09/{arg:'" + $("#txtval").val() + "'}";
                $.ajax({
                    type: "post",
                    contenttype: "application/json;utf-8",
                    data: sdata,
                    //  datatype: "json",
                    url: "default.x/getword",
                    success: function (msg) {
                        //  debugger;
                        //   var json = eval('(' + msg + ')');
                        alert(msg.d);
                    },
                    error: function (xmlhttprequest, textstatus, errorthrown) {
                        debugger;
                        alert("ok");
                        // 通常 textstatus 和 errorthrown 之中
                        // 只有一个会包含信息
                        // this; // 调用本次ajax请求时传递的options参数
                    }

第二种是通过参数,来控制,是否调用数据源方法.

后台代码如下:

    protected void page_load(object sender, eventargs e)
    {
        string methor = request["act"];
        if (!string.isnullorempty(methor))
        {
            this.gettype().getmethod(methor).invoke(this,null);

          
        }
    }

    public void getval()
    {
        string val = "getval 方法获取参数" + request["arg"];
        response.clear();
        response.write(val);
        response.end();
    }

这样也是一种好的数据源调用方法

在前台代码如下:

                var data = https://www.cnblogs.com/incubator/archive/2011/12/09/new object();
                data.act = "getval";
                data.arg = $("#txtval").val();

                $.post("default.aspx", data, function (data) { alert(data); });

这是本人一些心得体会,希望大家多多交流,看看还有没有更好的方法来实现写ajax数据源

[csharp] 
using system;  
using system.collections.generic;  
using system.linq;  
using system.web;  
using system.web.ui;  
using system.web.ui.webcontrols;  
using system.web.services; 
public partial class _default : system.web.ui.page  
{      
  protected void page_load(object sender, eventargs e) 
  { 
    string methor = request["act"] 
    if (!string.isnullorempty(methor)) 
    { 
      this.gettype().getmethod(methor).invoke(this,null); 
    }    
  } 
  public void getval() 
  { 
    string val = "getval 方法获取参数" + request["arg"]; 
    response.clear(); 
    response.write(val); 
    response.end(); 
   } 
  [webmethod] 
  public static string getword(string arg)30      
  { 
    return "调用 webservice,值是"+arg;  
  } 
 } 
作者:lxrj2008