Tôi đang cố gắng để thực hiện một số cuộc gọi đến một WebServiceTại sao chức năng CallBack của tôi không hoạt động?
tôi đã làm chính xác những gì được mô tả trong bài viết này
http://viralsarvaiya.wordpress.com/2010/03/23/calling-web-service-from-java-script-in-asp-net-c/
Nhìn vào giao diện điều khiển của con đom đóm tôi có thể thấy rằng chức năng của tôi đã được thực hiện và trả về dữ liệu dự kiến, nhưng chức năng gọi lại của tôi (OnComplete, OnError, OnTimeOut) không bao giờ được thực hiện.
Có gì không ổn?
Đây là mã (cùng một mã của bài viết) Service.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
[WebService(Namespace = "http://Localhost...xys/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
[System.Web.Script.Services.ScriptService()]
public class Service : System.Web.Services.WebService
{
public Service() {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld(string strNoOfData)
{
return strNoOfData;
}
}
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" language="javascript">
function CallService() {
Service.HelloWorld(document.getElementById('Textbox1').value,
OnComplete, OnError, OnTimeOut);
}
function OnComplete(Text) {
alert(Text);
}
function OnTimeOut(arg) {
alert("timeOut has occured");
}
function OnError(arg) {
alert("error has occured: " + arg._message);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/Service.asmx" />
</Services>
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<fieldset>
<asp:TextBox ID="Textbox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Call Service" OnClientClick="CallService()" />
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
bạn có thể vui lòng đăng mã của bạn ở đây không? có thể giúp gỡ lỗi vấn đề. –
mã là CHÍNH XÁC mã của bài viết – Ewerton
Tôi đã sử dụng mã chính xác, gọi lại được gọi là như mong đợi. Điều duy nhất tôi nhận thấy là bạn đang đi qua 'OnTimeOut' thay cho tham số' userContext', thử thêm 'InlineScript =" true "' vào tham chiếu dịch vụ của bạn rồi xem nguồn và kiểm tra kịch bản lệnh dịch vụ đã tạo. –