gpt4 book ai didi

javascript - Asmx Web服务引用问题

转载 作者:行者123 更新时间:2023-11-28 21:21:17 25 4
gpt4 key购买 nike

我需要在客户端页面中使用 JavaScript 调用我的 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;
}

}

感谢您的帮助

最佳答案

您需要将 webmethod 中的集合序列化为 json,并使用 return 方法返回字符串(= 实际上是集合的序列化输出 = json)。

看看Encosia 。它可能包含有关 asp.net、javascript 和 jquery 协同工作的最详尽的文章。

using System.Web.Script.Serialization;


JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Serialize(CalendarEvents);

而且我宁愿使用 jquery 来调用 webservices。并留意 d。 asmx 中的前缀。使用 jquery 使用 Web 服务时。

关于javascript - Asmx Web服务引用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6314564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com