我试图在下拉列表中选择已更改事件时调用c#方法,选择更改事件会触发,但ajax不起作用
<script type="text/javascript">
$(document).ready(function () {
$('body').delegate('#drpselect1', 'change', function () {
var groupname = $("#drpselect1 option:selected").text();
alert(groupname);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "sample.aspx/getdata",
dataType: "json",
{"text":groupname},
success: function () {
alert("works");
// window.location.href = "ClubCreation.aspx";
},
Error: function () {
alert('error');
}
});
/* $.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "sample.aspx/getdata",
data:{"text":groupname}
dataType: "json",
success: function () {
alert('Successfully Saved');
//window.location.href = "ClubCreation.aspx";
},
Error: function () {
}
});*/
});
});
</script>
c#方法
[WebMethod]
public static void getdata(String text)
{
//do stuff
}
答案 0 :(得分:2)
您必须使用装饰getdata方法
[WebMethod]
属性。
在您的c#代码[WebMethod]
中缺失。
答案 1 :(得分:1)
试试这个
检查此行
data:'{"text":"'+groupname+'"}',//put "data:"
现在,
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "sample.aspx/getdata",
dataType: "json",
data:'{"text":"'+groupname+'"}',//put "data:"
success: function () {
alert("works");
// window.location.href = "ClubCreation.aspx";
},
Error: function () {
alert('error');
}
});
答案 2 :(得分:0)
可能你缺少属性:
[System.Web.Services.WebMethod()]
public static void getdata(String text)
在此处查看更多信息:Using jQuery to directly call ASP.NET AJAX page methods