asp.net AJAX 使用webServices调用时,出现“WebService”未定义
2013-08-02 15:41 wmsdg 阅读(275) 评论(0) 收藏 举报首先继续鄙视一下坑爹的asp.net,对自己的无知继续表示极度的无语
一个非常简单的在ajax中的web service调用
首先取一个自定义的web services备用
[WebService(Namespace = "http://my.org/",Description="test")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 [System.Web.Script.Services.ScriptService] public class MyWebService : System.Web.Services.WebService { [WebMethod] public string Merge(string a, string b) { return a + b; } }
注意其中的[System.Web.Script.Services.ScriptService],这是必须的
然后是AJAX出场
1 <input id="txt1" size="5" type="text" /> + 2 <input id="txt2" size="5" type="text" /> = 3 <input id="txt3" size="10" type="text" /> 4 <input type="button" value="Merge" onclick="MergeIt()" /> 5 6 <script type="text/javascript"> 7 function MergeIt() { 8 new MyWebService.Merge($get("txt1").value, $get("txt2").value, MergeComplete); 9 } 10 function MergeComplete(result) { 11 $get("txt3").value = result; 12 } 13 </script>
前面四行2个输入框,一个结果显示框,一个提交按钮
script内是JS调用的代码,MergeIt()是数据传送,调用webService的方法,多出的一个参数是结果返回用来显示数据的JS方法名
$get是document.getElementById的缩写 对JS一窍不通,真真心烦
1 <asp:ScriptManager ID="ScriptManager1" runat="server"> 2 <Services> 3 <asp:ServiceReference Path="MyWebService.asmx" /> 4 </Services> 5 </asp:ScriptManager>
在ScriptManager控件的Services集合属性里添加服务引用MyWebService.asmx
ready?Go!
撞墙上了
Microsoft JScript 运行时错误: “MyWebService”未定义
左思右思,均不得解
百度。。。。有高人解:此处需在所引用的WebService前加nameSpace名称,我这里的nameSpace是Webtest,so
1 <script type="text/javascript"> 2 function MergeIt() { 3 new Webtest.MyWebService.Merge($get("txt1").value, $get("txt2").value, MergeComplete); 4 } 5 function MergeComplete(result) { 6 $get("txt3").value = result; 7 } 8 </script>
但为什么要这样,还是不懂耶,还望高手赐教!
浙公网安备 33010602011771号