javascript - 直接从 AJAX 调用代码隐藏函数,无需页面加载

标签 javascript jquery asp.net ajax dotnetnuke

我正在尝试直接调用函数背后的代码。目前,我可以从 ajax.aspx.vb 的 PageLoad 事件调用该函数,并通过 ajax.aspx <%= m_result %> 上的变量传递响应。 。这很好用。但是,我不想通过 PageLoad 事件,而是直接定位该函数,而不必将数据放入 <%= m_result %> 中。 。可能吗?

我正在使用 DotNetNuke,其中所有功能都来自 ascx 控件。 所以,在我的ascx控制我的ajax为:

<script type = "text/javascript">
    function JSFunction() {
        var xx = 1;
            $.ajax({
                type: "POST",
                url: "/top3/DesktopModules/top3all/ajax.aspx/GetTestData",
                data: { 'sPageIndex': xx},
            }).done(function (response) {
             OnSuccessTest(response);
            });
    }
    function OnSuccessTest(response) {
        document.getElementById("<%= lblTest.ClientID%>").innerHTML = response;
}
</script>

在我的 ajax.aspx.vb 中:

 Protected m_result As String = ""

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim sModuleIDReferrer As String
        If Not HttpContext.Current.Request.UrlReferrer Is Nothing Then
            strUrl = HttpContext.Current.Request.UrlReferrer.ToString

            Dim sPageIndex As Integer
            If Integer.TryParse(Request("sPageIndex"), sPageIndex) Then

                GetTestData(sPageIndex)
            End If
          End If
    End Sub

 <System.Web.Services.WebMethod()> _
 Public Shared Function GetTestData(ByVal name As Integer) As String
        m_result = "some test"
        Return m_result
    End Function

在我的 ajax.aspx 中:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="ajax.aspx.vb" Inherits="Christoc.Modules.top3all.ajax" %>
<%= m_result %>

最佳答案

添加<System.Web.Services.WebMethod()>后正如@David所说,你可以尝试更改你的JS以使用PageMethods,check this answer ,在那里您可以找到您需要的一切。

希望这有帮助

关于javascript - 直接从 AJAX 调用代码隐藏函数,无需页面加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30645571/

相关文章:

javascript - 使用没有插件的 ul li 和 javascript 的树

c# - SendMailAsync 从不返回,仍然发送邮件

c# - 即使设置为非持久性,ASP.NET MVC 4 身份验证 cookie 也会被保存

c# - 带有详细信息表的 JQuery 网格

c# - 找不到 ASP.NET 母版页

javascript - 如何将脚本传递给 main.scala.html - Play ! 2个

javascript - 在 html 属性中指定一个 javascript 方法?

javascript - Selenium:列出页面中的传出 URL

javascript - 将 JW 播放器与 ASP.NET 集成

javascript - JQuery .load() 没有添加到 DOM?