当前位置:编程学习 > C#/ASP.NET >>

Asp.net ajax 调用WebService报WebService未定义错误

自觉对Asp.net Ajax用的还比较熟练,不过这个问题着是郁闷,找来找去没找原因,希望兄弟们帮忙看,是不是我哪个地方疏漏了,以下是脚本程序:
   //处理异步调用的登录方法
   function Login(e)
   {
var c_username = $get("txtUsername");
var c_password = $get("txtPassword");
var c_login = $get("login");
var c_logining = $get("logining");
var c_btnlogin = $get("btnLogin");
if(c_username == null || c_password == null )
return;
if(c_username.value == "" || c_password.value == "" )
{
message_title.innerText = "出错啦!";
message_content.innerText = "用户名和密码不能为空!";
ShowMessage(e);
return;
}
c_login.style.display = "none";
c_logining.style.display = "block";
c_btnlogin.disabled = true;

portal.UserLogin(c_username.value,c_password.value,OnComplete)
}
    回调的OnComplete方法就省了,因为就是提示找不到portal,我在前面家了命名空间也不行,我向不是这里的问题了,WebService里的方法我也查了N次了,也没发现问题,贴出来大伙瞅瞅。
         /// <summary>
/// 处理前台事件的WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class portal : System.Web.Services.WebService
{
public portal() { }

[WebMethod]
public string UserLogin(string username, string password)
{
Components.Common.UserHttp http = new Components.Common.UserHttp();
string msg = http.Login(username,password);
return msg;
}
}

Asp.net Ajax的ScriptManager也在页面添加了
   <asp:ScriptManager runat="server" ID="sm" EnablePartialRendering="true">
       <Services>
          <asp:ServiceReference Path="portal.asmx" />
       </Services>
   </asp:ScriptManager>
    那个portal.asmx文件与我调用的这个页面一样,都在网站(不是虚拟目录)根目录下,WebConfig文件配置的应该没问题,因为我其他ajax程序都在用,就现在使用js调用WebService的时候报错
,真是奇怪,花了俺一上午都没找到
对了,我的ajax组件使用的是Asp.Net Ajax 1.0 RC版本,开发环境是VS2005+SP1,打了SP1补丁的 --------------------编程问答-------------------- 没看明白,JS里的portal是从哪来的?你是指这个页面所对应的类名么? --------------------编程问答-------------------- 大哥,你看后面嘛
<asp:ScriptManager runat="server" ID="sm" EnablePartialRendering="true">
       <Services>
          <asp:ServiceReference Path="portal.asmx" />
       </Services>
   </asp:ScriptManager>
portal当然就是站内的WebService文件咯 --------------------编程问答-------------------- JS中对Atlas所定义的类的引用应放在ScriptManager的声明之后,也就是Atlas在做Type.registerNamespace之后放置 --------------------编程问答-------------------- 跟这个有关系么,我这是一个按钮事件,执行的时候页面所有东西都加载好了的 --------------------编程问答-------------------- up --------------------编程问答--------------------  我也是同样问题 --------------------编程问答-------------------- 是不是要 Path="~/Portal.asmx" --------------------编程问答-------------------- 关注 --------------------编程问答-------------------- portal.UserLogin(c_username.value,c_password.value,OnComplete) 
这里该成
你的实际使用的namespace.portal.UserLogin(c_username.value,c_password.value,OnComplete) ;

如果你还没明白,那么就在页面查看源代码中查找“portal.”,你就会知道怎么调用了。 --------------------编程问答-------------------- 跟你问题相同
--------------------编程问答-------------------- 受教了
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,