良い人たち、私はジレンマに陥っており、時間は間違いなく私の味方ではありません.
私の目的 は、データベースからデータセット/データテーブルを介してレコードを取得し、次に汎用コレクションに、最後にクライアント側で 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,Supplier,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>