如何通过ajax传递参数到vb.net中定义的函数

本文关键字:net 定义 函数 vb ajax 何通过 参数 | 更新日期: 2023-09-27 17:52:49

我需要从ajx调用传递参数到vb.net中定义的函数。

函数定义为:

<System.Web.Services.WebMethod()> _
    Public Shared Function wwww(ByVal id As String) As String

        Return "jhgfjhf"
    End Function

Ajax调用如下:

var l = window.location;
    var base_url = l.protocol + "//" + l.host;
    $(".pagen ").click(function () {

        var num = $(this).attr('id');
        alert(num);
        $.ajax({
            type: "POST",
            url: base_url + '/Album%20Viewer%20web/albumlist.aspx/wwww',
            data: { id:num },
            dataType: 'json',
            async: false,
            cache: false,
            contentType: "application/json",
            success: function (response) {
                console.log(response);


            },
            error: function (jqXHR, textStatus, errorThrown) {
                if (typeof (console) != 'undefined') {
                    console.log(errorThrown);
                }
                else { alert("something went wrong"); }
            }
        });

    });

在使用此代码时导致内部服务器错误。如果我删除参数section (used data:{}和Public Shared Function www() As String),那么它将正常工作。那么我怎么传递参数呢?

如何通过ajax传递参数到vb.net中定义的函数

为了允许从脚本调用,您需要将ScriptService属性添加到WebService,然后(返回JSON)将ScriptMethod属性添加到WebMethod:

<ScriptService()>
Public Class WebService1
    Inherits System.Web.Services.WebService
    <WebMethod()> _
    <ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
    Public Function wwww(ByVal id As String) As String
        Return id & "AAA"
    End Function
End Class

然后你需要稍微修改一下你如何通过javascript传递数据,像这样:

data: "{ 'id':'" + num +"'}", // "{'id':'something'}"

Value将以JSON格式返回,因此要读取该值,您需要:

var returnedValue = response.d // 'd' because Microsoft decided so