我有一个asp.net页面,我正在使用jquery ajax。我需要创建一个方法,我可以在$ .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中使用它?请建议。
答案 0 :(得分: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/
答案 1 :(得分:0)
您可以查看此内容。这种方法与您想要实现的方法类似。
如果您想要一个示例JSONP,请参阅My javascript won't work as it should
答案 2 :(得分: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>