私は最初の 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」というエラーが表示されますが、名前空間がまったく認識されていないことを示しているようです。