【问题标题】:call aspx.vb method using ajax使用 ajax 调用 aspx.vb 方法
【发布时间】:2015-01-29 17:52:44
【问题描述】:

我的问题如下:

我需要调用特定 asp.net webform 的代码隐藏文件的特定方法。

这是我的 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.aspx中vb中的函数:

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(不允许的方法)

提前感谢您的帮助。

最好的问候

【问题讨论】:

    标签: asp.net ajax vb.net


    【解决方案1】:

    您需要在方法上有 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
    

    查看this link 了解有关可设置属性的信息。

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

    编辑 正如 Stryner 所指出的,该方法必须在从 Ajax 调用的 Web 方法上共享。 Here is an explanation on why.

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

    【讨论】:

    猜你喜欢
    • 2021-11-14
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 2012-12-02
    • 2023-03-31
    • 1970-01-01
    • 2015-10-08
    • 2016-11-24
    相关资源
    最近更新 更多