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是未定義」錯誤,似乎表明該命名空間根本無法識別。
我會試試這個。我仍在閱讀和學習AJAX/Web服務,並且我更瞭解其中的細節/協議。爲什麼這個Web服務需要JQuery,但我讀的其他例子中沒有一個使用它?這只是一種方式,還是有什麼事情在這裏我不知道? – 2013-04-10 15:44:48
你沒有*使用jQuery,這只是jQuery實現ajax的一個例子。如果您查看xmlHttpRequests的標準JavaScript API以及使它跨瀏覽器兼容所涉及的代碼量,您將看到爲什麼人們使用jQuery。 – 2013-04-10 15:48:13
這幾乎是我懷疑的。我有點驚訝,我需要任何額外的框架,但當然我看到的例子幾乎是「Hello World」的東西。 – 2013-04-10 18:05:05