使用ASP.NET WebForms中的AJAX调用'代码隐藏'中的函数?

时间:2016-10-07 08:41:22

标签: c# asp.net json ajax vb.net

我希望在我的视图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

如果我运行该页面,并使用浏览器检查页面以查看错误,则不会出现,但代码未到达我在代码隐藏中放入方法的断点。

我做错了什么? 我很感激建议,谢谢。

4 个答案:

答案 0 :(得分:1)

首先检查您的服务器是否允许非HTTPS请求。 我有这种类型的问题,我的服务器不允许我这样做。 它然后禁用它并测试。

然后检查响应状态。

error: function(xhr, status) {
alert(xhr.status); }

让我们知道结果。

- Ruhul

答案 1 :(得分:1)

转到“App_Start”文件夹下的“RouteConfig.vb”。

更改以下行

 settings.AutoRedirectMode = RedirectMode.Permanent

settings.AutoRedirectMode = RedirectMode.Off

我认为你的方法代码会返回类似的内容。

返回Default.aspx / MethodToCreateChart

所以我是你的MethodToCreateChart逻辑。

您可以尝试使用以下示例方法。你的内部服务器错误即将发生,因为你从方法中返回了一些东西。

Public Shared Function MethodToCreateChart(parameter1 As String) As String

   Return "Hello " & Environment.NewLine & "The Current Time is: " & _DateTime.Now.ToString()
End Function

答案 2 :(得分:0)

我认为你应该删除&#39; runat = server&#39; span标记的属性。

答案 3 :(得分:0)

您使用与ashx文件相同的aspx文件。那么看看下面的链接: 1. How do you debug ASP.net HTTPHandler 2. Can't debug ASHX handler