C# 使用jquery ajax调用aspx.cs文件中的webmethod
我有一个default.aspx.cs,其中包含要调用的webmethod,还有一个包含jquery ajax的js文件。我无法调用webmethod 以下是我的default.aspx.cs:C# 使用jquery ajax调用aspx.cs文件中的webmethod,c#,jquery,asp.net,ajax,webmethod,C#,Jquery,Asp.net,Ajax,Webmethod,我有一个default.aspx.cs,其中包含要调用的webmethod,还有一个包含jquery ajax的js文件。我无法调用webmethod 以下是我的default.aspx.cs: protected void Page_Load(object sender, EventArgs e) { string[] MyArray = new string[1]; MyArray[0] = "My Value"; Grid1
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();
}
您可能会注意到,我正在提醒我的数据,以确保我有正确的值发送到我的webmethod。但正如我所说,它无法调用我的webmethod,也无法在ajax中实现成功函数。救命啊!谢谢!:) 尝试将
类型设置为“Get”,并在URL中发送参数而不是数据
url: "Default.aspx/getDetails/?colunmname="+colname+"&inputVal="+inputValue,
type: "GET"
您的webmethod必须是静态的
[WebMethod]
public static Details[] getDetails(string columnname, string inputVal)
这是一个完整的示例,展示了如何使用asp.net页面通过ajax请求调用服务器端“webmethod”的整个过程
对不起,我不明白你刚才说的话。我的意思是你应该在URL中传递参数,并将类型设置为GET。请检查我更新的answeerI,我终于可以调用我的webmethod了。为什么它不停在我设置断点的那一行?这是否意味着它没有进入webmethod?您还可以使用数据:“?colunmname=“+colname+”&inputVal=“+inputValueOops”。我再次检查了一遍,仍然发现了一个内部服务器错误。当我在webmethod上放置static时,出现了一个错误。错误2非静态字段、方法或属性“SearchMember_Updated.Default.Grid1D”+1需要对象引用@ljpv14,所以不要引用它。。。在您的案例中,更新web方法中的某些UI是没有意义的,因为没有相应的HTML页面。您无法在webmethod上绑定服务器控件。使用它从服务器加载/保存数据。恐怕你需要改变一下logic@AlexeiLevenkov我相信我说过我的webmethod在默认值内。aspx.cso如果意味着我需要在另一个方法中传递它,以便将它与我的gridview绑定?如何将列表传递给另一个方法@克劳迪奥·雷迪。谢谢
[WebMethod]
public static Details[] getDetails(string columnname, string inputVal)