1

这是我的课:

Public Class Employeeclass
Public Property Fname As String
Public Property Lname As String
Public Property Bdate As Date
End Class

这是我的方法:

 <WebMethod()>
Public Shared Function Getemployee(ByVal id As Integer) As List(Of Employeeclass)
    Threading.Thread.Sleep(2000)
    Dim db As New NorthwindEntities
    Return db.Employees.Where(Function(q) q.EmployeeID = id).Select(Function(q) New Employeeclass With {.Lname = q.LastName, .Fname = q.FirstName, .Bdate = q.BirthDate}).ToList()
End Function

这是我的脚本代码:

$(document).ready(function () {
        $("#btnsearch").click(function () {
            $("#result").addClass("loading");
            $("#result").text("");
            $.ajax({
                type: "POST",
                url: "Default.aspx/Getemployee",
                contentType: "application/json;charset=utf-8",
                data: "{'id':" + $("#txtsearch").val() + "}",
                dataType: "json",
                success: function (data) {
                    $("#result").removeClass("loading");
                    var employee = data.d;
                    if (employee.length > 0) {
                        for (var i = 0; i < employee.length; i++) {
                            $("#result").append(employee[i].Fname + ",");
                            $("#result").append(employee[i].Lname + ",");
                            $("#result").append(employee[i].Bdate + "<br/>");
                        }
                    }
                }
            });
        });
    });

使用 jquery ver "jquery-1.3.2.js" 一切都可以。
但是当我使用ver“jquery-1.7.2.js”或“jquery-1.7.2.min.js”时。
我收到此错误:消息 = 无效的 Web 服务调用,参数缺少值:'id'。
对不起我的英语不好

4

3 回答 3

1

不要将数据包装在字符串中。试试:

data: { id: $("#txtsearch").val() }
于 2012-05-11T12:41:45.910 回答
0

发送这个

"{'id':" + $("#txtsearch").val() + "}"

只会发送一个无法绑定到整数的 json 字符串,
而不是您应该发送一个可以绑定到整数类型 id 的 json 对象

data:{"id":$("#txtsearch").val()}

现在,当您发送请求时,您可以调试并看到数据是这样发送的

id=ur_value
于 2012-05-11T12:47:27.797 回答
0

我每次$.ajax()将数据发布到网络方法时,我都会JSON.stringify()在我的对象上使用它来确保它是正确的。

除此之外,您可以尝试更改引号: '{"id":' + $("#txtsearch").val() + '}'看看它们是否有问题......

于 2012-05-11T12:51:16.900 回答