javascript - 如何从vb.net中的aspx.vb页面调用webmethod

标签 javascript jquery asp.net vb.net

我想做的,是从 aspx.vb 调用 WebMethod,下面是我的 WebMethod 语法,位于 Default.aspx.vb

<System.Web.Services.WebMethod()> _
<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)> _
Public Shared Function dat( _
ByVal Id As Integer) As List(Of items)
    Dim eve As New List(Of items)()
    eve = (From row In getItems(Id).Rows
           Select New items With {
                                .Name = row("Name").ToString(),
                                .Description = row("Description").ToString(),
                                .ItemPic_url = row("ItemPic_url").ToString()}).ToList()
    Return eve
End Function

下面是我调用 Web 方法的 jquery 函数:

注意:我的 Jquery 函数放置在我的母版页中,我从启动 Default.aspx 页面调用它。

function getItems() {
        $("#tbody").empty();
        var id = $("select")[0].value;
        $.ajax({
            url: "Default.aspx/dat",
            data: { Id: id },
            contentType: "Application/json; charset=utf-8",
            responseType: "json",
            method: "POST",
            success: function (response) {
                $("#tbody").empty();
                var rows = response.d;
                var count = response.d.length;
                var table = document.getElementById("tbody");
                var row;
                var cell;
                for (var i = 0; i < rows.length; i++) {
                    if (i % 4 == 0) {
                        row = table.insertRow();
                    }
                    cell = row.insertCell();  //simply insert the row
                    cell.innerHTML = "<td><ul><li style='text-align:center;'><img id='imgload' width='190px'; height='166px' src='../Images/CatalogImgs/" + rows[i].ItemPic_url + "' alt='No Image Found' /></li><li style='margin:4px 6px;font-weight: 600;font-family: Calibri;font-size: 16px;'>" + rows[i].Name + "</li><li style='margin:4px 6px;color: #808080;font-weight: 600;'><p>" + rows[i].Description + "</p></li></ul></td>";
                    if (document.getElementById("tbody").rows[0].cells.length > 0)
                    {
                        //alert(document.getElementById("tbody").rows[0].cells.length);
                        switch (rows.length) {
                            case 1:
                                $("#tbody > tr > td").css('padding-left', '18%');
                                break;
                            case 2:
                                $("#tbody > tr > td").css('padding-left', '12%');
                                break;
                            case 3:
                                $("#tbody > tr > td").css('padding-left', '6%');
                                break;
                            default:
                                $("#tbody > tr > td").css('padding-left', '1%');
                        }
                    }
                }
            },
            error: function (xhr) {
                alert(xhr.status);
            },
            Failure: function (response) {
                alert(response);
            }
        });
    }

问题:我没有进入我的网络方法。通过尝试从浏览器进行调试。我收到如下错误:

Unknown web method dat.
 Parameter name: methodName
 at System.Web.Script.Services.WebServiceData.GetMethodData(String methodName)
 at System.Web.Handlers.ScriptModule.OnPostAcquireRequestState(Object sender, EventArgs eventArgs)
 at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
 at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

最佳答案

我正在做的事情是从 aspx.vb 调用 WebMethod

下面是我的 WebMethod 语法,位于 Default.aspx.vb 中:

<System.Web.Services.WebMethod()> _
<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)> _

您还需要添加以下导入:

Imports System.Web.Services  
Imports System.Web.Script.Services

关于javascript - 如何从vb.net中的aspx.vb页面调用webmethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35746108/

相关文章:

javascript - 注册自动输入验证安全/隐私问题

javascript - html5 视频中的 Youtube 类型注释

asp.net - 如何编辑asp.net 站点?我对 .cs 文件所做的更改,不影响任何内容

javascript - 为什么编辑CSS文件不会像JS一样自动实时更新?

javascript - img src 属性为空时返回页面的 url

javascript - 单击后退链接时如何返回到上一页中处于事件状态的 div

javascript - jQuery 日期选择器将日期格式作为默认值

c# - 禁用按钮文本在 IE 中变灰

c# - 找不到为 MVC 5 DropDownListFor 添加占位符的方法

javascript - jquery多选,如何从函数而不是更改事件中获取值