使用 Ajax 调用 ASPX.vb 方法



我的问题是:

我需要调用特定 asp.net Web 表单文件背后的代码的狭隘方法。

这是我的jquery(ajax)函数:

function LoadPayments(_page) {
    var cliente = 245328;
    $.ajax({
        type: "POST",
        url: "PayBills.aspx/LoadPayments",
        data: { cod_client: client, page: _page },
        contentType: "application/json: charset=utf-8",
        dataType: "json",
        cache: false
    })
    .done(function (data) {

    });
}

这是 PayBills 中 vb 中的函数.aspx:

Protected Sub LoadPayments(cod_client As Integer, page As Integer)
        Dim proxy As proxyWAS = New proxyWAS
        gvDocuments.DataSource = proxy.GetDocumentsList(cod_client, page)
        gvDocuments.DataBind()
End Sub

现在我收到此错误:405(方法不允许)

提前感谢您的帮助。

此致敬意

您需要

在方法上具有WebMethodAttribute

Imports System.Web.Services
' Other code ...
<WebMethod()> _
Protected Shared Sub LoadPayments(cod_client As Integer, page As Integer)
    'Dim proxy As proxyWAS = New proxyWAS
    'gvDocuments.DataSource = proxy.GetDocumentsList(cod_client, page)
    'gvDocuments.DataBind()
End Sub

有关可以设置的属性的信息,请查看此链接。

这将调用 Web 方法,但不会更新 UI。 从 AJAX 调用执行数据绑定不会更新显示的内容。执行回发以便可以更新 UI,或者使用 Web 方法调用返回 HTML,然后可用于更新显示。

编辑 正如Stryner所指出的,该方法必须在从Ajax调用的Web方法上共享。 以下是原因的解释。

方法中的代码在 Ajax 调用中不起作用。 如果要使用 Web 窗体的数据绑定,请使用回发(可选)在更新面板中。 如果你真的想要Ajax调用的性能,那么你需要创建一个生成HTML的函数,并让JavaScript更新UI。

最新更新