【问题标题】:call function in 'code behind' with AJAX in ASP.NET WebForms?在 ASP.NET WebForms 中使用 AJAX 在“代码隐藏”中调用函数?
【发布时间】:2017-02-16 04:55:12
【问题描述】:

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

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

我做错了什么? 非常感谢您的建议,谢谢。

【问题讨论】:

  • 检查新更新的代码

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


【解决方案1】:

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

然后检查响应状态。

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

让我们知道这是结果。

--鲁胡尔

【讨论】:

  • 我收到成功警报,而不是错误警报,但正如我所说,代码没有到达我在代码隐藏方法中放置的断点。 :-(
【解决方案2】:

转到“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

【讨论】:

  • 不起作用,但我尝试将它放在ajax方法中:url:“Default.aspx”,并且工作但只达到页面的负载,所以问题出在路径上,但我不知道如何解决它
  • 删除此行。
  • 我收到此错误:加载资源失败:服务器响应状态为 500(内部服务器错误)localhost:4984/Default.aspx/MethodToCreateChart
  • 你检查我的新代码?因为在我的项目中您的代码正在运行,所以代码隐藏部分的方法中出现断点。
  • 你可以压缩你的项目,下载它吗?
【解决方案3】:

我认为你应该从 span 标记中删除 'runat=server' 属性。

【讨论】:

  • 我从 span 中删除了 runat 服务器,但它不起作用:-(
【解决方案4】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多