我需要在我的客户端页面中用JavaScript调用我的Web服务方法。我想我没有正确地引用这个正确的,并希望帮助搞清楚这一点,请。Asmx web服务引用问题
错误消息说“CalendarHandler未定义”。
<%@ WebService Language="C#" CodeBehind="~/App_Code/CalendarHandler.cs"
Class="CalendarHandler" %>
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master"
AutoEventWireup="true" CodeFile="CalendarPage.aspx.cs" Inherits="CalendarPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<input type="button" id="loadevents" onclick="callLoadEvents();" />
<div id="eventresults"> </div>
<div id="resultFailed"> </div>
<script language="javascript" type="text/javascript">
var tasks;
function callLoadEvents() {
Speak.CalendarHandler.GetEvents(GetLoadAddress_success, OnFailed);
}
function GetLoadAddress_success(e) {
tasks = e;
}
// --------------------------
function OnFailed() {
$get('resultFailed').innerHTML = "failed";
}
</script>
</asp:Content>
using System.Web;
using System.Web.Services;
[WebService(Namespace = "Speak")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
[System.ComponentModel.ToolboxItem(false)]
public class CalendarHandler : System.Web.Services.WebService
{
static IDictionary<DateTime, String> Calendarevents;//hold my events in this
public CalendarHandler() {
Calendarevents = new Dictionary<DateTime, string>();
Calendarevents.Add(DateTime.Now, "Going to meeting with XYZ Company");
Calendarevents.Add(DateTime.Now.AddDays(1), "XML Class at 2pm");
Calendarevents.Add(DateTime.Now.AddDays(1),"ASP.NET 3.5 Ajax");
Calendarevents.Add(DateTime.Now.AddDays(1),"Pocket Guide");
Calendarevents.Add(DateTime.Now.AddDays(1),"Grocery Shopping");
}
[WebMethod]
public IDictionary<DateTime, String> GetEvents()
{
return Calendarevents;
}
}
您的帮助表示赞赏
我从主页面scriptmanager中删除了servicereference,而是像上面在子页面中那样使用了scriptmanagerproxy。我仍然无法使用我为我的服务定义的名称空间调用webservice方法。 – Kobojunkie 2011-06-12 01:36:26
我可以通过CalendarHandler.GetEvents(GetLoadAddress_success,OnFailed)调用我的引用;但不Speak.CalendarHandler.GetEvents(GetLoadAddress_success,OnFailed); – Kobojunkie 2011-06-12 01:37:40
用替代方法更新。 – 2011-06-12 01:58:54