gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:17:56 25 4
gpt4 key购买 nike

我正在尝试直接调用函数背后的代码。目前,我可以从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com