我的.cs代码是
auth_reg.aspx.cs (breakpoint shows the method is never reached)
[WebMethod]
public void ImageButton1_Click()
{
string strScript = "<script language='JavaScript'>alert('working')</script>";
Page.RegisterStartupScript("PopUp", strScript);
}
.html代码
<asp:ImageButton ID="imgbtnsave" runat="server" Text="Submit" ImageUrl="images/btn-submit1.jpg" src="images/btn-submit1.jpg" onmouseout="this.src='images/btn-submit1.jpg';" onmouseover="this.src='images/btn-submit.jpg';" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('#imgbtnsave').click(function () {
$.ajax({
type: "POST",
url: "auth_reg.aspx/ImageButton1_Click",
data: '{}',
contentType: "application/json",
dataType: "json",
success: function (msg) {
alert('workingajax');
},
error: function () {
alert('error');
}
});
});
</script>
我的代码没有调用,只需单击
即可刷新页面答案 0 :(得分:3)
页面方法必须是静态的:
[WebMethod]
public static void ImageButton1_Click()
{
}
但是你不能在Page Method中注册客户端脚本方法,因为它是静态的。
除了图像控件是服务器端控件,因此jQuery选择器必须是:
<script type="text/javascript">
$("#<%=imgbtnsave.ClientID%>").click(function () {
$.ajax({
type: "POST",
url: "auth_reg.aspx/ImageButton1_Click",
data: '{}',
contentType: "application/json",
dataType: "json",
success: function (msg) {
alert('workingajax');
},
error: function () {
alert('error');
}
});
});
</script>
答案 1 :(得分:1)
使用以下代码制作WebMethod Static并修复错误:
$("#<%=imgbtnsave.ClientID%>").click(function () {
var para1;
var para2;
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'EXAMPLE.aspx/SaveData',
data: "{'para1':'" + para1+ "', 'para2':'" + para2+ "'}",
async: false,
success: function (response) {
},
error: function () {
console.log('there is some error'); }
});
}
答案 2 :(得分:0)
我没有经典asp.net的经验,但我认为你应该把你的点击处理程序放在ready()
语句中,因为问题可能是在DOM准备好之前执行了JavaScript:< / p>
$(document).ready(function() {
$('#imgbtnsave').click(function () {
...
});
});
除此之外,请检查您的控制台(例如FireBug of Chrome Dev工具)以查看是否存在JavaScript错误。
答案 3 :(得分:0)
第一个使你的Web方法静态,如果你的方法仍未解雇,那么请确保$ .ajax调用中的url是正确的
url:“/ auth_reg.aspx / ImageButton1_Click”,`
将“/”放在前面或者在firebug上调试url是否正确