2013-04-10 34 views
0

我在寫我的第一個Web服務類。我相信我已遵循http://msdn.microsoft.com/en-us/library/bb398998.aspx的所有方向,但是JavaScript失敗,因爲webservice的名稱空間未知。ASPX頁面看不到我的Web服務類的名稱空間

我的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是未定義」錯誤,似乎表明該命名空間根本無法識別。

回答

0

您需要使用ajax將JavaScript與您的Web服務集成。 有關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' 
}); 
+0

我會試試這個。我仍在閱讀和學習AJAX/Web服務,並且我更瞭解其中的細節/協議。爲什麼這個Web服務需要JQuery,但我讀的其他例子中沒有一個使用它?這只是一種方式,還是有什麼事情在這裏我不知道? – 2013-04-10 15:44:48

+0

你沒有*使用jQuery,這只是jQuery實現ajax的一個例子。如果您查看xmlHttpRequests的標準JavaScript API以及使它跨瀏覽器兼容所涉及的代碼量,您將看到爲什麼人們使用jQuery。 – 2013-04-10 15:48:13

+0

這幾乎是我懷疑的。我有點驚訝,我需要任何額外的框架,但當然我看到的例子幾乎是「Hello World」的東西。 – 2013-04-10 18:05:05

相關問題