技术开发 频道

ASP.NET 2.0 AJAX中Webservice调用方法

  【IT168 技术文档】

  笔者安装的ASP.NET 2.0 AJAX

  版本为AJAX November CTP。

  三个示例分别为:

  1 带参数的WS方法

  2 不带参数的WS方法
 
  3 参数类型为DataTable的WS方法

  一、WebMethod

  注意要点:

  1 WebMethod类需要添加命名空间 Microsoft.Web.Script.Services,此空间需要引用Microsoft.Web.Preview.dll

  2 类声明加入标签 [ScriptService]

  3 在Asp.net 2.0里可以直接用DataTable作为返回类型了,但是需要在Web.config文件添加序列化转换器的属性。DataSet、DataTable、DataRow均有转换器

   < system.web.extensions>
  
< scripting>

  
< webServices>

  
< jsonSerialization>

  
< converters>

  
< add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview"/>

  
< add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview"/>

  
< add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview"/>

  
< /converters>

  
< /jsonSerialization>

  
< /webServices>

  
< /scripting>

  
< /system.web.extensions>

 

 

  WEB服务1:WS1

using System;
  
using System.Web;

  
using System.Collections;

  
using System.Web.Services;

  
using System.Web.Services.Protocols;

  
using Microsoft.Web.Script.Services;

  
using System.Data;

  
/**////

  
/// WS1 的摘要说明

  
///

  [WebService(Namespace
= "http://tempuri.org/")]

  [WebServiceBinding(ConformsTo
= WsiProfiles.BasicProfile1_1)]

  [ScriptService]

  
public class WS1 : System.Web.Services.WebService {

  
public WS1 () {

  
//如果使用设计的组件,请取消注释以下行

  
//InitializeComponent();

  }

  [WebMethod]

  

      
public string ServerTime()
  {

  
return String.Format("now: {0}", DateTime.Now);

  }

  [WebMethod]

  
public DataTable GetDataTable()

  {

  DataTable dt
= new DataTable("Person");

  dt.Columns.Add(
new DataColumn("Name", typeof(string)));

  dt.Columns.Add(
new DataColumn("LastName", typeof(string)));

  dt.Columns.Add(
new DataColumn("Email", typeof(string)));

  dt.Rows.Add(
"kui", "he", "hekui168@163.com");

  dt.Rows.Add(
"ren", "chao", "chaoren888@163.com");

  
return dt;

  }

  }

 

  

  WEB服务2:WS

using System;
  
using System.Web;

  
using System.Collections;

  
using System.Web.Services;

  
using System.Web.Services.Protocols;

  
using Microsoft.Web.Script.Services;

  
/**////

  
/// WS 的摘要说明

  
///

  [WebService(Namespace
= "http://tempuri.org/")]

  [WebServiceBinding(ConformsTo
= WsiProfiles.BasicProfile1_1)]

  [ScriptService]

  
public class WS : System.Web.Services.WebService {

  
public WS () {

  
//如果使用设计的组件,请取消注释以下行

  
//InitializeComponent();

  }

  [WebMethod]

  [ScriptMethod(UseHttpGet
= true)]

        
public string HelloWorld(String query)
  {

  
string inputString = Server.HtmlEncode(query);

  
if (!String.IsNullOrEmpty(inputString))

  {

  
return String.Format("hello, {0}. ", inputString);

  }

  
else

  {

  
return "query string is null or empty";

  }

  }

  }

 

   

0
相关文章