我的问题如下:
我需要调用特定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(方法不允许)
提前感谢您的帮助。
最好的问候
答案 0 :(得分:3)
您需要在方法上使用 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,然后可以用来更新显示。
编辑正如Stryner所指出的,必须在从Ajax调用的Web方法上共享该方法。 Here is an explanation on why
您的方法中的代码无法通过Ajax调用工作。如果要使用Web表单的数据绑定,请使用回发,可选择在更新面板中。如果您真的想要执行Ajax调用,那么您需要创建一个生成HTML并让JavaScript更新UI的函数。