1

好人,我进退两难,时间绝对不在我这边。

我的目标 是我想通过数据集/数据表从数据库中获取记录,然后到一个通用集合,最后到一个在客户端使用 JQuery 的 JSon 对象,以改善用户体验。

到目前为止的工作方式 我的代码在 Web 服务中工作,直到数据被移交给客户端/浏览器为止。

我不确定的事情 由于我对 JSON 和 JQuery 的经验很少或几乎没有经验,因此来自 Web 服务的数据不会显示在 Web 浏览器中。我不知道问题出在哪里。

代码 在这里我附上我的其余代码:

  1. hotelrates.vb 文件,hotelrates.asmx 文件背后的代码
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Web.Script.Services
Imports System.Collections.Generic
Imports System.Linq
Imports System.Data
Imports MySql.Data.MySqlClient
Imports System.Reflection

<WebService([Namespace]:="http://tourslogin.net/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ScriptService()> _
Public Class Hotelrates
 Inherits WebService
 <WebMethod()> _
 Public Function GetRates() As Generic.List(Of Rate)
    Dim m_globalfunctions As New clsGlobalFunctions
    Dim SQL As String = "SELECT 

tblhotelrates.ID,供应商,From_date,To_Date,Room_type,Room_basis FROM tblhotelrates,tblHotels WHERE tblhotelrates.SupplierID=tblHotels.ID "

     Dim clsDB As New clsDatabase("jksafarisdbConnectionString")
     Dim dsCostingDetails As DataSet
     Try
        dsCostingDetails = clsDB.QueryDataSet(SQL, "jksafarisdbConnectionString")

        Dim s As Rate
        Dim c As New Generic.List(Of Rate)
        For Each dr As DataRow In dsCostingDetails.Tables(0).Rows
            s = New Rate
            With s
                .myID = m_globalfunctions.CheckDBNull(dr("ID"))
                .Supplier = m_globalfunctions.CheckDBNull(dr("Supplier"))
            End With
            c.Add(s)
        Next

        Return c
    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        clsDB.Close()
    End Try

End Function End Class <Serializable()> _ Public Class Rate
Private _myID As String
Private _supplier As String

Public Property myID() As String
    Get
        Return _myID
    End Get
    Set(ByVal value As String)
        _myID = value
    End Set
End Property

Public Property Supplier() As String
    Get
        Return _supplier
    End Get
    Set(ByVal value As String)
        _supplier = value
    End Set
End Property End Class
  1. 客户端代码JQuery/Json

<div id="output"></div>
<script type="text/javascript">
$(function () {

 $('#Button1').click(getRates);

 });



function getRates() {

$.ajax({

    type: "POST",

    url: "Hotelrates.asmx/GetRates",

    data: "{}",

    contentType: "application/json; charset=utf-8",

    dataType: "json",

    success: function (response) {

        var rates = response.d;

        $('#output').empty();

        $.each(rates, function () {

            $('#output').append('<p><strong>' + Rate.myID + ' ' +

                        Rate.myID + '</strong><br /> Year: ' +

                        Rate.mySupplier + '<br />');

        });

    },

    failure: function (msg) {

        $('#output').text(msg);

    }
});
     }

  </script>
  </asp:Content>
4

1 回答 1

2

您的 js 中的 Rate 变量似乎没有声明。

尝试使用以下方法更改您的成功回调函数:

success: function (response) {
    var rates = response.d;
    $('#output').empty();

    for (var r in rates) {
        $('#output').append('<p><strong>' + rates[r].myID + ' ' +
                    rates[r].myID + '</strong><br /> Year: ' +
                    rates[r].mySupplier + '<br />');

    }
}
于 2012-06-28T11:41:17.247 回答