c# - 使用 jquery ajax 在 aspx.cs 文件中调用 webmethod

标签 c# jquery asp.net ajax webmethod

我有一个 default.aspx.cs,其中包含我要调用的 web 方法,我的 js 文件包含我的 jquery ajax。我无法调用网络方法。

这是我的 default.aspx.cs:

    protected void Page_Load(object sender, EventArgs e)
    {
        string[] MyArray = new string[1];
        MyArray[0] = "My Value";

        Grid1D.DataSource = MyArray;
        Grid1D.DataBind();
    }

    [WebMethod]
    public Details[] getDetails(string columnname, string inputVal)
    {
        List<Details> list = new List<Details>();

        DbAccess dbacc = new DbAccess();

        DataTable dt = dbacc.getReportDetails(columnname, inputVal);

        foreach (DataRow row in dt.Rows)
        {
            Details _Details = new Details();
            _Details.memid = row["memid"].ToString();
            _Details.usrname = row["usrname"].ToString();
            _Details.fullname = row["fullname"].ToString();
            _Details.fname = row["fname"].ToString();
            _Details.mname = row["mname"].ToString();
            _Details.lname = row["lname"].ToString();
            _Details.bdate = row["bdate"].ToString();
            _Details.address = row["address"].ToString();
            _Details.sponsorid = row["sponsor_id"].ToString();
            _Details.parentid = row["parent_id"].ToString();
            _Details.placement = row["placement"].ToString();
            _Details.datejoined = row["date_joined"].ToString();


            list.Add(_Details);
        }

        Grid1D.DataSource = list.ToArray();
        Grid1D.DataBind();

        return list.ToArray();
    }

这是我的 js 文件:

function retrieveReportData() {
    var columnName = $("#ddlFilters").val();
    var input = $("#tags").val();

    if (columnName != "Select") {

        var Data = JSON.stringify({ columnname: columnName, inputVal: input });

        alert(Data);

        $.ajax({

            url: "Default.aspx/getDetails",
            data: Data,
            type: "POST",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (mydata) {

                alert(mydata.d);
            }
        });

    }
    else 
        alert("Please choose search filter");
}

您可能会注意到我正在提醒我的数据以确保我有正确的值发送到我的网络方法。但正如我所说,它无法调用我的 web 方法,也不会在我的 ajax 中继续执行我的成功功能。帮助!谢谢! :)

最佳答案

您的网络方法需要是static

[WebMethod]
public static Details[] getDetails(string columnname, string inputVal)

关于c# - 使用 jquery ajax 在 aspx.cs 文件中调用 webmethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688951/

相关文章:

c# - 等到页面加载到 webbrowser 控件中

javascript - 在 angularJS 应用程序文档就绪事件中运行 jquery 代码

javascript - 在输入类型日期中设置日期

asp.net - 我们如何在 ASP.NET 2.0 中启用 SQL 缓存依赖项?

javascript - 尝试发出 WebSocket 请求时,在 aync 任务中 HttpContext.Current.Session 为 null

c# - 以编程方式将 ScriptManager 添加到页面?

c# - 覆盖 MVC 中的最大长度错误消息

c# - 未知语言随机码生成器

javascript - 从另一个框架刷新另一个框架。查询

asp.net - Server.Transferrequest() 并获取当前 URL