【问题标题】:linq to jquery with jquery ver jquery-1.7.2linq to jquery with jquery ver jquery-1.7.2
【发布时间】:2012-05-11 12:38:38
【问题描述】:

这是我的课:

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”时。
我收到此错误:Message=Invalid web service call, missing value for parameter: 'id'。
抱歉我的英语不好

【问题讨论】:

    标签: jquery asp.net vb.net json entity-framework-4


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • //data: "{'id':" + $("#txtsearch").val() + "}", //data: { id: $("#txtsearch").val() }, //data: {"id": $("#txtsearch").val()}, //data: JSON.stringify({ id: $("#txtsearch").val() }), //data: JSON.stringify(tempvar),
      • 我正在使用 data: JSON.stringify({ dept: $("#dept").val() }) 你尝试过这个并包含 JSON2.js 库吗?
      • 我从 github.com/douglascrockford/JSON-js/downloads 下载 JSON2.js,我正在使用你的代码,但仍然出现错误。
      • 天哪,我在 IE9 中遇到了所有错误。 12 小时后,我在 firefox12 中测试我的代码,这是有效的。
      • 你有没有在你的ajax调用之前放置一个断点来看看txtsearch的价值是什么?我对 IE9 没有任何问题...
      【解决方案3】:

      发送这个

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

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

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

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

      id=ur_value
      

      【讨论】:

      • 确保存在 id 为“txtsearch”的输入。并且您在其中放入了一个有效的整数。
      • 您应该会看到您实际发布到服务器的请求。通过进入开发者工具(你可以通过按 F12 来完成)
      • 我同意 u.for 服务器端我使用提琴手。在 win8、IE10 中我收到错误,但在 Firefox 或 chrome 中,我的每个 ajax 代码都可以正常工作。任何地方谢谢你的重播。对不起我的英语不好
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多