好人,我进退两难,时间绝对不在我这边。
我的目标 是我想通过数据集/数据表从数据库中获取记录,然后到一个通用集合,最后到一个在客户端使用 JQuery 的 JSon 对象,以改善用户体验。
到目前为止的工作方式 我的代码在 Web 服务中工作,直到数据被移交给客户端/浏览器为止。
我不确定的事情 由于我对 JSON 和 JQuery 的经验很少或几乎没有经验,因此来自 Web 服务的数据不会显示在 Web 浏览器中。我不知道问题出在哪里。
代码 在这里我附上我的其余代码:
- 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
- 客户端代码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>