开始之前先定义个泛型类和数据对象类型

    [DataContract]
    public class Product
    {
        [DataMember]
        
public int ProductID;
        [DataMember]
        
public string Name;
        [DataMember]
        
public string ProductNumber;
    }
    [DataContract]
    
public class PageData<T>
    {
        [DataMember]
        
public int TotolRecord
        {
            
get;
            
set;
        }

        [DataMember]
        
public T Data
        {
            
get;
            
set;
        }
    }

 

方法一:

参考:

http://www.cnblogs.com/iamv/archive/2008/10/31/1323821.html

http://www.cnblogs.com/jillzhang/archive/2008/06/13/1219201.html

新建Ajax-enabled WCF Service

名字为ProductService.svc

WCF代码

 Josn_WCF
{
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode 
= AspNetCompatibilityRequirementsMode.Allowed)]
    
public class ProductService
    {
        [OperationContract]
        
public string GetProductDetailsByProductID(int productID)
        {

//随便定义一个返回的对象
            Product prod 
= new Product();
            
int i = productID;
            prod.ProductID 
= i;
            prod.Name 
= i.ToString() + "_V";
            prod.ProductNumber 
= i.ToString() + "007";


            MemoryStream stream 
= new MemoryStream();
            DataContractJsonSerializer serializer 
= new DataContractJsonSerializer(typeof(Product));
            serializer.WriteObject(stream, prod);
            stream.Position 
= 0;
            StreamReader streamReader 
= new StreamReader(stream);
            
return streamReader.ReadToEnd();
        }
    }
}

 

UI调用WCF代码

新建一个aspx页面

 


    <title>Invoking the Product Service through the AJAX based Client</title>

    
<script type="text/javascript">       
   function pageLoad() {   
   }   
   function OnGetClick() {                    
     ProductService.GetProductDetailsByProductID($
get("txtProductID").value,OnGetComplete, OnError);            
   }    
   function OnGetComplete(result){    
     var prod 
= eval("(" + result + ")");                   
     $
get("spnProductID").innerText = prod.ProductID;   
     $
get("spnProductName").innerText = prod.Name;   
     $
get("spnProductNumber").innerText = prod.ProductNumber;                   
   }    
   function OnError(errorMessage) {   
     alert(errorMessage.get_message());    
   }    
    
</script>

</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        Enter Product ID:
        
<input type="text" id="txtProductID" name="txtProductID" />
        
<input type="button" value="Get Product Details" id="btnInvokeWebService" onclick="OnGetClick()" />
        
<asp:ScriptManager ID="ScriptManager1" runat="server">
            
<Services>
                
<asp:ServiceReference Path="~/ProductService.svc" />
            
</Services>
        
</asp:ScriptManager>
        
<br />
        
<br />
        Product ID : 
<span id="spnProductID"></span>
        
<br />
        
<br />
        Name :
<span id="spnProductName"></span>
        
<br />
        
<br />
        Product Number :
<span id="spnProductNumber"></span>
        
<br />
        
<br />
    
</div>
    
</form>
</body>
</html>

 

主要是注意其中的JavaScript代码和ScriptManager

<asp:ScriptManager ID="ScriptManager1" runat="server">
     <Services>
          <asp:ServiceReference Path="~/ProductService.svc" />
     
</Services>
</asp:ScriptManager>

 

相关文章:

  • 2021-09-29
  • 2021-11-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-24
  • 2022-01-22
猜你喜欢
  • 2022-01-29
  • 2021-08-06
  • 2022-12-23
  • 2021-12-28
  • 2022-12-23
  • 2021-11-24
  • 2022-12-23
相关资源
相似解决方案