下面是我前台的代码
<script>
$(function () {
var getdata = "1";
$.ajax({
type: 'post',
url: "ajax.aspx/test",
dataType: "json",
async: false,
data: { getdata:'1' },
success: function (obj) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.responseText);
}
});
})
</script>
下面是我后台的代码
[WebMethod]
public static string test(string id)
{
return id;
}
但是我打开网页的时候报错,显示如下
protected void Button1_Click(object sender, EventArgs e)
{
…………;
}
asp:button 如果想要调用 ajax 请求又不回发整个页面的话,使用 onClientClick就行了。 或者使用javascript/jquery 通过元素点击事件来执行 ajax请求就行。 简单例子:
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="setSession" Text="set Sesssion" OnClientClick="callAjax();return false;" />
</div>
</form>
<script src="Scripts/jquery-3.4.1.min.js"></script>
<script>
var getdata = 1;
function callAjax() {
$.ajax({
type: "POST",
url: "End.aspx/test",
data: "{id:" + getdata + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Do something interesting here.
console.log(msg);
}
});
}
</script>
</body>
注意传递参数名和 Webmethod 中的要保持一致,并且在执行请求结束时,加上return false;
阻止页面回发。
這個有用使用到 jquery。可能需要另外找相關範例。
建議先熟悉 html form / aspx form submit 的動作。
然後再嘗試修改 aspx 內容以及加入各種前端。