0

我有一个使用 jquery ajax 的 asp.net 页面。我需要创建一个可以在 $.ajax 中用作 url 的方法。我在网上搜索,发现我需要创建 WCF 服务。我的解决方案在 asp.net 3.5 中。我在这样的 IJsonDataService.cs 接口中创建了两个方法

    [ServiceContract]
    public interface IJsonDataService
    {
        [OperationContract]
        Person DoWork();

        [OperationContract]
        string GetData();
    }

and then in class file I have implemented them like this:

   [WebGet(RequestFormat= WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json,UriTemplate="data/{id}")]
 public Person DoWork(){
 return new Person();

}

 [WebGet(RequestFormat= WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json,UriTemplate="data/{id}")]
    public string GetData(string parameter)
    {
        return "this is" + abc;
    }

我的 web.config 看起来像这样:

<system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="JsonDataServiceBehavior">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service behaviorConfiguration="JsonDataServiceBehavior" name="JsonDataService">
                <endpoint address="" binding="wsHttpBinding" contract="IJsonDataService">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            </service>
        </services>
    </system.serviceModel>

我想将 Id 传递给这些方法,然后查询数据库并返回结果,然后将结果格式化为 json 并将该 json 返回到 $.ajax 方法。我需要在上述方法中进行哪些更改以及如何将数据作为 json 返回,然后在 $.ajax 中使用它?请建议。

4

3 回答 3

0

你可以检查这个。这种方法类似于您想要完成的。

MVC 应用程序中的 Web 服务

如果您想要一个示例 JSONP,请参阅我的 javascript 无法正常工作

于 2013-02-20T06:08:07.410 回答
0

这是我发现有用的几篇文章教程

http://geekswithblogs.net/Nettuce/archive/2009/10/18/wcf-jquery-rest-json-service.aspx

这个最有用

http://bendewey.wordpress.com/2009/11/24/using-jsonp-with-wcf-and-jquery/

于 2013-02-20T05:50:03.460 回答
0

您的配置需要如下所示:

<system.serviceModel>
<endpointBehaviors>
        <behavior name="web">
          <webHttp />
          <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
        </behavior>
        <behavior name="json">
          <enableWebScript />
        </behavior>
      </endpointBehaviors>
        <behaviors>
            <serviceBehaviors>
                <behavior name="JsonDataServiceBehavior">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service behaviorConfiguration="JsonDataServiceBehavior" name="JsonDataService">
                <endpoint address="" behaviorConfiguration="web" binding="webHttpBinding" contract="namespace.IJsonDataService">                       
                </endpoint>                    
            </service>
        </services>
    </system.serviceModel>
于 2013-02-20T10:20:46.820 回答