[英]Calling webmethod ina aspx.cs file using jquery ajax
I have a default.aspx.cs which contains my webmethod to call and I have my js file that containg my jquery ajax. 我有一个default.aspx.cs,其中包含我要调用的webmethod,我的js文件包含了我的jquery ajax。 I can't get to call the webmethod.
我不能称之为webmethod。
Here is my default.aspx.cs: 这是我的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();
}
And here is my js file: 这是我的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");
}
You may notice that I'm alerting my data to ensure that I have the right values to send to my webmethod. 您可能会注意到我正在提醒我的数据,以确保我有正确的值发送到我的webmethod。 But just like I said, it fails to call my webmethod and don't proceed to my success function within my ajax.
但就像我说的那样,它无法调用我的webmethod,也没有在我的ajax中继续我的成功功能。 Help!
救命! Thanks!
谢谢! :)
:)
You webmethod needs to be static
. 你的webmethod需要是
static
。
[WebMethod]
public static Details[] getDetails(string columnname, string inputVal)
This one is a complete sample, which shows the whole process at the beginning until at the end of how to call a server side "webmethod" via ajax request using asp.net page. 这是一个完整的示例,它显示了开始时的整个过程,直到如何使用asp.net页面通过ajax请求调用服务器端“webmethod”。
http://www.codeproject.com/Questions/374136/Call-Page-Method-From-Jquery-Ajax-Call http://www.codeproject.com/Questions/374136/Call-Page-Method-From-Jquery-Ajax-Call
Try to set type
to "Get" and send the parameters in the URL instead of Data 尝试将
type
设置为“获取”并在URL中发送参数而不是数据
url: "Default.aspx/getDetails/?colunmname="+colname+"&inputVal="+inputValue,
type: "GET"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.