0

我有一个网络服务方法:

namespace myNamSpace
{
    [WebService(Namespace = "http://tempuri.org/")]
    [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]
    public class myClass : System.Web.Services.WebService
    {
        [WebMethod]
        public DataSet login(string strClientCertificate, string strClientChallengeSigned, string MsgChallenge, string rndNum)
        {
           //some codes
           return ds; // return data set
        }
     }

我想在我的javascript中使用回调函数调用这个方法,所以我有:

myNameSpace.myClass.login(cert, sign, msg, rndNum, succeededCallBack,failedCallBack);
function succeededCallBack(xmlDocument)
{
   alert("HERE!");
}
function failedCallBack(error)
{
   alert(error);
}

当我调试代码时,在调用我的 login 之后webMethod,什么也没发生。我的意思是我的脚本没有收到任何"HERE!"或错误警报。有人知道吗?任何帮助,将不胜感激。

4

2 回答 2

0

尝试在页面正文中添加一个 asp:script 管理器

<asp:ScriptManager ID="scpt" runat="server" EnablePageMethods="true">

尝试使用如下简单的 wen 方法:

[WebMethod]
    public stringHello(string strClientCertificate, string strClientChallengeSigned, string MsgChallenge, string rndNum)
    {
       return "hello"; // return data set
    }
于 2013-09-04T10:38:54.977 回答
0

尝试使用类根据需要创建对象。

       [WebMethod]
    public List<MyRow> login(string strClientCertificate, string strClientChallengeSigned, string MsgChallenge, string rndNum)
          {
       List<MyRow> MyTable = new List<MyRow>();

            foreach(DataRow dr in ds.Tables[0].Rows)
             {
              MyRow obj = new MyRow();
              obj.column1=dr["column1"].ToString();
              obj.column2=dr["column2"].ToString();
              MyTable.Add(obj );

          }
       return MyTable;
       }

        public class MyRow
          {
           public string column1{get;set;}
           public string column2{get;set;}
          }

如果尝试返回 DataTable,将引发循环异常。

循环引用可能是由于 DataTable 具有 Columns 属性,并且每个 DataColumn 对象都有 Table 属性。当属性相互引用时,将很难序列化为[json][1].

json 是用于 asp.net 和 javascript 之间数据交换的符号。阅读有关 json 的更多信息,您将了解更多有关它的信息。好好读书,好好谷歌。

于 2013-09-04T11:37:46.420 回答