[英]call function in 'code behind' with AJAX in ASP.NET WebForms?
當我在視圖aspx中單擊范圍時,我想訪問后面的代碼中的方法:
DEFAULT.ASPX查看代碼:
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<%-- MY SPAN --%>
<span runat="server" onclick="ShowChartSpider(this.id)" id="group_2" style="cursor: pointer" class="pull-right">My Span</span>
<%-- JAVASCRIPT CODE --%>
<script type="text/javascript">
function ShowChartSpider(group_id) {
$.ajax({
type: "POST",
url: "Default.aspx/MethodToCreateChart",
dataType: "json",
data: "{'parameter1':" + JSON.stringify(group_id) + "}",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert("all correct");
},
error: function (data) {
alert("no");
}
}
);
}
</script>
</asp:Content>
DEFAULT.ASPX.VB的代碼如下:
<WebMethod()>
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Shared Sub MethodToCreateChart(sender As Object, e As EventArgs)
' My code to create the chart .....
End Sub
如果我運行該頁面,並使用瀏覽器檢查該頁面以查看錯誤,則不會出現任何錯誤,但是代碼未達到我在代碼隱藏方法中放入的斷點。
我做錯了什么? 我會很感激建議,謝謝。
首先檢查您的服務器允許非HTTPS請求。 我遇到了這類問題,我的服務器不允許我這樣做。 因此,請禁用該功能並進行測試。
然后檢查響應狀態。
error: function(xhr, status) {
alert(xhr.status); }
讓我們知道那是結果。
-魯胡爾
轉到“ App_Start”文件夾下的“ RouteConfig.vb”。
更改以下行
settings.AutoRedirectMode = RedirectMode.Permanent
至
settings.AutoRedirectMode = RedirectMode.Off
我認為您的方法代碼返回這樣的東西。
返回Default.aspx / MethodToCreateChart
所以我你的MethodToCreateChart邏輯。
您可以嘗試以下示例方法。 您的內部服務器錯誤即將到來,因為您要從方法中返回somethng。
Public Shared Function MethodToCreateChart(parameter1 As String) As String
Return "Hello " & Environment.NewLine & "The Current Time is: " & _DateTime.Now.ToString()
End Function
我認為您應該從span標記中刪除“ runat = server”屬性。
您使用與ashx文件相同的aspx文件。 因此,請看以下鏈接:1. 如何調試ASP.net HTTPHandler 2. 無法調試ASHX處理程序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.