0

私は最初の Web サービス クラスを書いています。http://msdn.microsoft.com/en-us/library/bb398998.aspxのすべての指示に従ったと思いますが、Web サービスの名前空間が不明であるため、javascript は失敗します。

私の Web サービス:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using BusinessLogicLayer;

namespace AVWebService
{    
    [WebService(Namespace = "http://MyTestSite.Com/webservices/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.Web.Script.Services.ScriptService]

    public class FillDropLists : System.Web.Services.WebService
    {

        [WebMethod]
        public Lookup[] GetRooms(string DataCenterId)
        {
            return BLL.getRooms(DataCenterId).ToArray();
        }
    }
}

マイ Web 設定

  <system.web>
     <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/>      
        <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" />
     </httpHandlers>
  </system.web>

私の ScriptManager は私のマスター ページにあります。

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="AVWebService.asmx" />
    </Services>
</asp:ScriptManager>

そして最後に、私のjavascript

function FillRoomsList(e) {
            var idx = e.selectedIndex;
            var dcId = e.options[idx].value;
            AVWebService.FillDropLists.GetRooms(dcId, OnRoomsReceived);
        }

「AVWebService is undefined」というエラーが表示されますが、名前空間がまったく認識されていないことを示しているようです。

4

1 に答える 1

0

JavaScript を Web サービスに統合するには、ajax を使用する必要があります。jQuery の実装に関する説明については、次のリンクを参照してください。

http://api.jquery.com/jQuery.ajax/

例。

$.ajax({
     url : 'yourWebService.asmx',
     data: 'data you are sending to the web service'
     success: 'function to execute on success'
});
于 2013-04-10T14:40:17.820 に答える