页面中的脚本如下:
- JScript code
function btnInvoke_onclick(){ var theName = document.getElementById("tbName").value; SimpleWebService.SayHello(theName, onSayHelloSucceeded);//此处出错。}function onSayHelloSucceeded( result ){ document.getElementById("result").innerHtml = result;}
aspx页面文件:
- C# code
<from id="form1" runat="server"> <asp:ScriptManager ID="sm" EnablePateMethods="true" runat="server"> <Service> <asp:ServiceReference Path="Services/SimpleWebService.asmx" /> </Service> </asp:ScriptManager> <div> <input id="tbName" type="text" /> <input id="btnInvoke" type="button" value="Say Hello" onclick="return btnInvoke_onclick()" /> <div id="result" ></div> <div></from>
SimpleWebService.asmx文件中的内容:
- C# code
......using System.Web.Script.Service;......namespace WebApplication1{ .... .... [ScriptService] public class SimpleWebService : System.Web.Services.WebService { [WebMethod] public string SayHello( string name ) { return string.Format( "Hello {0}!", name ); } } }
出现的错误是:
Microsoft JScript 运行时错误:‘SimpleWebService’未定义。[color=#FF0000][/color]
我在网上找了一些说法:
1. 路径问题:该webservice文件时建立在WebApplication1下的,与页面在同一个文件夹下。
2. 添加命名空间,由于该webservice文件时建立在WebApplication1下的,因此命名空间与CS文件的命名空间是一致的,如果硬要写成:
- JScript code
WebApplication1.SimpleWebService.SayHello(theName, onSayHelloSucceeded);
错误就是WebApplication1未定义。
该程序是从网上的某个博客中找到的,据博主所说,内容出自“APS.NET AJAX 程序设计”。
请教怎么处理,谢谢!
------解决方案--------------------------------------------------------
ScriptManager不是很好的东西
使用jQuery 吧,简单
jQuery Ajax 调用 WebService 返回数据表(DataTable)的方法。
HTML 代码
- HTML code
<!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>jQuery Ajax 调用 WebService 返回数据表(DataTable)的方法。</title> <script type="text/javascript" src="jquery-1.5.js"></script> <script type="text/javascript"> function ParseDate(jsonDate) { var date = new Date(parseInt(jsonDate.substr(6))); return date.toLocaleString(); } function GetData() { $.ajax({ type: "post", //注意这里是 post url: "WebService.asmx/GetDataTable", data: "{\"id\":\"8888\"}", contentType: "application/json;charset=utf-8", //提交数据的方法格式 dataType: "json", //返回数据的格式 success: function (result) { //你可以 alert(result.d)看数据返回的格式 data = jQuery.parseJSON(result.d); t = "<table border='1'>"; $.each(data, function (i, item) { t += "<tr>"; t += "<td>" + item.UserId + "</td>"; t += "<td>" + item.Name + "</td>"; t += "<td>" + item.Count + "</td>"; t += "<td>" + ParseDate(item.CreateDate)+ "</td>"; t += "</tr>"; }) t += "</table>"; $("#result")(t); }, error: function (result) { alert(result.responseText); } }); } window.onload = GetData; </script></head><body> <div id="result"></div></body></html>