Asp.net &引用;未知Web方法“;Ajax错误

Asp.net &引用;未知Web方法“;Ajax错误,asp.net,ajax,vb.net,webmethod,Asp.net,Ajax,Vb.net,Webmethod,错误函数中返回的数据是:未知web方法递增表(pageNumber)。参数名称:methodName。我确信我在某个地方犯了一个小错误,但希望第二双眼睛能帮我找到它。:) My.aspx页面如下所示: <%@ Page Title="TouchStoneTV" Language="VB" AspCompat="True" AutoEventWireup="True" Debug="True" EnableEventValidation="True" ValidateRequest="Fal

错误函数中返回的数据是:未知web方法递增表(pageNumber)。参数名称:methodName。我确信我在某个地方犯了一个小错误,但希望第二双眼睛能帮我找到它。:)

My.aspx页面如下所示:

<%@ Page Title="TouchStoneTV" Language="VB" AspCompat="True" AutoEventWireup="True" Debug="True" EnableEventValidation="True" ValidateRequest="False" Trace="False" EnableViewState="True" %>

<%@ Import Namespace="System.Web.Services" %>
<%@ Import Namespace="System.Web.Script.Services" %>

<WebMethod()> _
Public Shared Function IncrementTable '(ByVal PageNumber As Integer)

Dim PageNumber As Integer = 1
For x As Integer = 0 To Math.Ceiling(RowsPerPage/CellsPerRow)

    Dim r As TableRow = New TableRow
    'If (x Mod CellsPerRow) = 0 Then r = New TableRow
    r.Attributes.Add("style","text-align:center;height:200px;width:50%;")

    Dim c1, c2 As New TableCell
    c1.Attributes.Add("style","border:1px solid #000;")
    c2.Attributes.Add("style","border:1px solid #000;")
    c1.Controls.Add(New LiteralControl(PageNumber.ToString & "a : " & x.ToString))
    c2.Controls.Add(New LiteralControl(PageNumber.ToString & "b : " & x.ToString))
    r.Cells.Add(c1)
    r.Cells.Add(c2)

    MainContentTable.Rows.Add(r)

Next x

Return "test"

End Function
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">

var pageNumber = 1;
//var webMethodUrl = '<%=ResolveUrl("~/Mobile.aspx/IncrementTable(pageNumber)") %>'; //alert(webMethodUrl); //this gets a 404-not found error
var webMethodUrl = 'Mobile.aspx/IncrementTable(pageNumber)'; 

$(document).ready(function () {
    $(window).scroll(function () {
        // Get the current vertical position of the scrollbar.  If it's equal to the height of the document minus the 
        // window height then go get some more data
        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
            // Increment page number and set up the parameters
            pageNumber += 1;
            var params = "{'pageNumber': " + pageNumber + "}";

            // Async post back to the BindDataAsync code behind web method
            $.ajax({
                type: "POST",
                url: webMethodUrl,
                data: params,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (data) {alert('error: ' + data);},
                success: function (data) {alert('success');
                    //if (data != "") {
                        // Take the results from the web service method and append them to the table
                    //    $('#ProductsTable').append(data.d);
                    //}
                }
            });
        }
    });
});

</script>

_
公共共享函数IncrementTable'(ByVal PageNumber为整数)
Dim PageNumber为整数=1
对于x作为整数=0的数学上限(RowsPerPage/CellsPerRow)
Dim r As TableRow=新TableRow
'如果(x Mod CellsPerRow)=0,则r=新表格行
r、 添加(“样式”,“文本对齐:中心;高度:200px;宽度:50%”)
尺寸c1、c2作为新的表格单元
c1.属性。添加(“样式”,“边框:1px实体#000;”)
c2.属性。添加(“样式”,“边框:1px实体#000;”)
c1.Controls.Add(新的文字控件(PageNumber.ToString和“a:”&x.ToString))
c2.Controls.Add(新的文字控件(PageNumber.ToString和“b:”&x.ToString))
r、 单元格。添加(c1)
r、 单元格。添加(c2)
MainContentTable.Rows.Add(r)
下一个x
返回“测试”
端函数
javascript如下所示:

<%@ Page Title="TouchStoneTV" Language="VB" AspCompat="True" AutoEventWireup="True" Debug="True" EnableEventValidation="True" ValidateRequest="False" Trace="False" EnableViewState="True" %>

<%@ Import Namespace="System.Web.Services" %>
<%@ Import Namespace="System.Web.Script.Services" %>

<WebMethod()> _
Public Shared Function IncrementTable '(ByVal PageNumber As Integer)

Dim PageNumber As Integer = 1
For x As Integer = 0 To Math.Ceiling(RowsPerPage/CellsPerRow)

    Dim r As TableRow = New TableRow
    'If (x Mod CellsPerRow) = 0 Then r = New TableRow
    r.Attributes.Add("style","text-align:center;height:200px;width:50%;")

    Dim c1, c2 As New TableCell
    c1.Attributes.Add("style","border:1px solid #000;")
    c2.Attributes.Add("style","border:1px solid #000;")
    c1.Controls.Add(New LiteralControl(PageNumber.ToString & "a : " & x.ToString))
    c2.Controls.Add(New LiteralControl(PageNumber.ToString & "b : " & x.ToString))
    r.Cells.Add(c1)
    r.Cells.Add(c2)

    MainContentTable.Rows.Add(r)

Next x

Return "test"

End Function
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">

var pageNumber = 1;
//var webMethodUrl = '<%=ResolveUrl("~/Mobile.aspx/IncrementTable(pageNumber)") %>'; //alert(webMethodUrl); //this gets a 404-not found error
var webMethodUrl = 'Mobile.aspx/IncrementTable(pageNumber)'; 

$(document).ready(function () {
    $(window).scroll(function () {
        // Get the current vertical position of the scrollbar.  If it's equal to the height of the document minus the 
        // window height then go get some more data
        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
            // Increment page number and set up the parameters
            pageNumber += 1;
            var params = "{'pageNumber': " + pageNumber + "}";

            // Async post back to the BindDataAsync code behind web method
            $.ajax({
                type: "POST",
                url: webMethodUrl,
                data: params,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (data) {alert('error: ' + data);},
                success: function (data) {alert('success');
                    //if (data != "") {
                        // Take the results from the web service method and append them to the table
                    //    $('#ProductsTable').append(data.d);
                    //}
                }
            });
        }
    });
});

</script>

var pageNumber=1;
//var webMethodUrl=''//警报(webMethodUrl)//这将获得一个404未找到错误
var webMethodUrl='Mobile.aspx/IncrementTable(pageNumber)';
$(文档).ready(函数(){
$(窗口)。滚动(函数(){
//获取滚动条的当前垂直位置。如果它等于文档的高度减去
//窗口高度,然后去获取更多数据
if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){
//增加页码并设置参数
页码+=1;
var params=“{'pageNumber':“+pageNumber+”}”;
//异步发回BindDataAsync代码隐藏web方法
$.ajax({
类型:“POST”,
url:webMethodUrl,
数据:params,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
错误:函数(数据){alert('error:'+data);},
成功:函数(数据){alert('success');
//如果(数据!=“”){
//从web服务方法获取结果并将其附加到表中
//$('ProductsTable')。追加(data.d);
//}
}
});
}
});
});
删除参数:

var webMethodUrl = 'Mobile.aspx/IncrementTable';

该方法配置为使用httpget调用,但您正在使用POST方法在javascript中调用

<WebMethod()> _
<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)> _
Public Shared Sub IncrementTable(ByVal PageNumber As Integer)
  'code
End Sub
_
_
公共共享子增量表(ByVal PageNumber为整数)
“代码
端接头

只需删除UseHttpGet:=True,它就会解决您的问题。或者将jquery ajax代码更改为使用GET-request并将参数传递为querystring

,然后我必须这样做:url:'Mobile.aspx/IncrementTable',和…相同的错误。我想知道这一点。我把那一行改成:u。还有…同样的错误。请尝试从方法中删除
ScriptMethod
属性,并保留WebMethod,因为它是我收回的-您给了我一个线索…我正在更新问题。我必须:1)删除UseHttpGet,2)结果是我正在刷新页面以测试它,URL在最后有一些坏字符。现在它成功了,但是表(在我上面显示的代码中)没有刷新。有什么想法吗?(顺便说一句,如果你把它作为答案提交,我会把你的回答标记为正确)