Here is a sample for start WCF using json
in aspx page
Web.config Settings for WCF and json in WCF’s Web.config
in WCF Interface
Service Class
Happy Coding….
in aspx page
<script type="text/javascript"> function ajaxService2() { serviceUrl = "http://localhost/WCFS/Service1.svc/GetData"; var time = new Object(); time.value = "1"; $.ajax({ type: "POST", url: serviceUrl, data: JSON.stringify(time), contentType: "application/json; charset=utf-8", dataType: "json", success: function (transport) { var string = transport; $("#<%= Text2.ClientID %>").val(string); }, error: function (ex) { alert("error" + ex.responseText); } }); } function ajaxService1() { serviceUrl = "http://localhost/WCFS/Service1.svc/GetAllProducts"; $.ajax({ type: "GET", url: serviceUrl, contentType: "application/json; charset=utf-8", dataType: "json", success: function (transport) { var string = transport; $("#<%= Text1.ClientID %>").val(string); }, error: function (ex) { alert("error" + ex); } }); } </script> <h2> Welcome to ASP.NET! </h2> <p> <p> <input id="Button2" onclick="ajaxService1()" value="Ajax call service 1" type="button"> <asp:textbox id="Text1" runat="server" /> </p> <p> <input id="Button3" onclick="ajaxService2()" value="Ajax call service 2" type="button"> <asp:textbox id="Text2" runat="server" /> </p>
Web.config Settings for WCF and json in WCF’s Web.config
<?xml version="1.0"?> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> <system.serviceModel> <services> <service name="WCFS.Service1"> <endpoint address="" binding="webHttpBinding" behaviorConfiguration="EndBehave" contract="WCFS.IService1"/> </service> </services> <behaviors> <endpointBehaviors> <behavior name="EndBehave"> <webHttp/> </behavior> </endpointBehaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" /> </system.serviceModel> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> </configuration>
in WCF Interface
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together. [ServiceContract] public interface IService1 { [OperationContract] [WebInvoke( ResponseFormat = WebMessageFormat.Json, Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest)] string GetData(int value); [OperationContract] CompositeType GetDataUsingDataContract(CompositeType composite); [OperationContract] [WebInvoke(UriTemplate = "/GetAllProducts", ResponseFormat = WebMessageFormat.Json, Method = "GET")] List<product> GetAllProducts(); // TODO: Add your service operations here } [DataContract] public class Product { [DataMember] public int ProdId { get; set; } [DataMember] public string PropName { get; set; } [DataMember] public int Quantity { get; set; } [DataMember] public int Price { get; set; } } // Use a data contract as illustrated in the sample below to add composite types to service operations. [DataContract] public class CompositeType { bool boolValue = true; string stringValue = "Hello "; [DataMember] public bool BoolValue { get { return boolValue; } set { boolValue = value; } } [DataMember] public string StringValue { get { return stringValue; } set { stringValue = value; } } }
Service Class
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class Service1 : IService1 { public List<product> GetAllProducts() { return new List<product> { new Product() {ProdId=101,PropName="Laptop",Quantity=200,Price=45000}, new Product() {ProdId=102,PropName="Desktop",Quantity=300,Price=35000}, }; } public string GetData(int value) { return string.Format("You entered: {0}", value.ToString()); } public CompositeType GetDataUsingDataContract(CompositeType composite) { if (composite == null) { throw new ArgumentNullException("composite"); } if (composite.BoolValue) { composite.StringValue += "Suffix"; } return composite; } }
Happy Coding….
No comments:
Post a Comment