如何使用WCF服务通过客户端将数据绑定到DropDownList

时间:2011-11-04 18:13:54

标签: c# jquery asp.net wcf

我是WCF服务的新手。我想在ASP.NET中使用WCF服务通过jQuery将数据绑定到DropDownList

1 个答案:

答案 0 :(得分:2)

这是一个简单的$.ajax(..)电话 http://api.jquery.com/jQuery.ajax/

在WCF中,您可以创建Rest Service(返回JSON)并在jQuery中使用此JSON响应

http://msdn.microsoft.com/en-us/netframework/dd547388

互联网上有很多例子。

c#中的示例(Atom提要):

   [ServiceContract]
   public interface INewsFeed
   {
      [OperationContract]
      [WebGet]
      Atom10FeedFormatter GetFeeds();
   }

    public class NewsFeed : INewsFeed
    {
          public Atom10FeedFormatter GetFeeds()
          {
          SyndicationFeed feed = new SyndicationFeed("My Blog Feed", "This is a test feed", new Uri("http://SomeURI"));
           feed.Authors.Add(new SyndicationPerson("someone@microsoft.com"));
           feed.Categories.Add(new SyndicationCategory("How To Sample Code"));
           feed.Description = new TextSyndicationContent("This is a how to sample that demonstrates how to expose a feed using RSS with WCF");

          SyndicationItem item1 = new SyndicationItem(
             "Lorem ipsum",
             "Lorem ipsum",
             new Uri("http://localhost/Content/One"),
             "ItemOneID",
             DateTime.Now);

         List<SyndicationItem> items = new List<SyndicationItem>();  
         items.Add(item1); 
         feed.Items = items;   
         return new Atom10FeedFormatter(feed);
          }
    }

在svc中你只需要添加(工厂部分):

<%@ ServiceHost Language="C#" Debug="true" Service="RssReader.Wcf.NewsFeed" CodeBehind="NewsFeed.svc.cs" Factory=System.ServiceModel.Activation.WebServiceHostFactory%>

<强>编辑:

<system.serviceModel>
    <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
              <serviceMetadata httpGetEnabled="true"/>
              <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
              <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
</system.serviceModel>

在该场景中,重要的部分是<serviceMetadata httpGetEnabled="true"/>,您不需要定义任何端点