zl程序教程

您现在的位置是:首页 >  后端

当前栏目

jquery调用wcf并展示出数据的方法

WCFjQueryWCF方法数据 调用 展示
2023-06-13 09:14:29 时间
首选创能wcf,代码很简单,如下:
复制代码代码如下:

usingSystem;
usingSystem.Data;
usingSystem.ServiceModel;
usingSystem.ServiceModel.Activation;
usingSystem.ServiceModel.Web;
usingSystem.Web.Script.Services;

[ServiceContract(Namespace="")]
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
publicclassimgService
{
//要使用HTTPGET,请添加[WebGet]特性。(默认ResponseFormat为WebMessageFormat.Json)
//要创建返回XML的操作,
//请添加[WebGet(ResponseFormat=WebMessageFormat.Xml)],
//并在操作正文中包括以下行:
//WebOperationContext.Current.OutgoingResponse.ContentType="text/xml";
[OperationContract]
[WebGet(RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]
//[WebInvoke(Method="GET",RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.WrappedRequest)]
publicDataTableGetDataTable(stringpz)
{
//在此处添加操作实现
DataSetds=WebBase.GetDS(WebBase.meinvRepository,string.Empty,"body_iddesc",pz);
if(ds.Tables.Count>0)
returnds.Tables[0];
returnnull;
}

//在此处添加更多操作并使用[OperationContract]标记它们
}


说明一下,wcf就一个GetDataTable方法,有一个参数pz表示返回数据的行数,返回的table以json数据给jquery使用

页面调用方法也很简单:

复制代码代码如下:

<%@PageLanguage="C#"EnableViewState="false"AutoEventWireup="true"CodeFile="Default.aspx.cs"
Inherits="jquerywcf_Default"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title></title>
<scriptsrc="../Scripts/jquery-1.4.1-vsdoc.js"type="text/javascript"></script>
</head>
<body>
<formid="form1"runat="server">
<divclass="main">
<ul><li><a></a></li></ul>
</div>
<div>
<scripttype="text/javascript">
functionsendAJAX(data){
varurl="<%=_url%>imgService.svc/GetDataTable";

$.getJSON(url,{pz:"6"},function(msg){
$(msg.d).find("Table").each(function(i){
varrq=$(this).children("Body_AddTime").text().split("T")[0].replace("-","").replace("-","");
rq=rq.substring(0,rq.length-2);
varhtml="<li><ahref="http://meinv.vs2010.com/topic/"+$(this).children("Body_MuLuID").text()+"/"+rq+"/show-id"+$(this).children("Body_ID").text()+".html"target="_blank"><imgsrc="http://meinv.vs2010.com/"+$(this).children("Body_Tu").text()+""/>"+$(this).children("Body_Name").text()+"</a></li>";
$(".mainul").append(html);
});
});

}


$(function(){
sendAJAX();
});
</script>
<divid="msg">
</div>
</div>
</form>
</body>
</html>

说明一下,主要是通过jquery的getjson方法去取得wcf返回的数据,传参方法:

$.getJSON(url,{pz:"6"},function(msg){alert(msg.d)});这里是返回6条数据还有wcf的svc上加上属性:
Factory=System.ServiceModel.Activation.WebScriptServiceHostFactory还有web.config的配置:
复制代码代码如下:
<?xmlversion="1.0"?>
2<configuration>
3
4<configSections>
5<!--ajax-->
6<sectionGroupname="ajaxNet">
7<sectionname="ajaxSettings"type="AjaxPro.AjaxSettingsSectionHandler,AjaxPro.2"requirePermission="false"restartOnExternalChanges="true"/>
8</sectionGroup>
9<!--ajax-->
<sectionGroupname="system.web.extensions"type="System.Web.Configuration.SystemWebExtensionsSectionGroup,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35">
<sectionGroupname="scripting"type="System.Web.Configuration.ScriptingSectionGroup,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35">
<sectionname="scriptResourceHandler"type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/>
<sectionGroupname="webServices"type="System.Web.Configuration.ScriptingWebServicesSectionGroup,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35">
<sectionname="jsonSerialization"type="System.Web.Configuration.ScriptingJsonSerializationSection,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="Everywhere"/>
<sectionname="profileService"type="System.Web.Configuration.ScriptingProfileServiceSection,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/>
<sectionname="authenticationService"type="System.Web.Configuration.ScriptingAuthenticationServiceSection,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/>
<sectionname="roleService"type="System.Web.Configuration.ScriptingRoleServiceSection,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings/>
<connectionStrings>
<addname="meinvvs2010ConnectionString"connectionString="server=127.0.0.1;userid=test;password=test;database=test;pooling=false"providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
<!--ajax-->
<ajaxNet>
<ajaxSettings>
<urlNamespaceMappingsuseAssemblyQualifiedName="false"allowListOnly="false"/>
<jsonConvertersincludeTypeProperty="true"/>
<debugenabled="false"/>
<tokenenabled="false"sitePassword="password"/>
</ajaxSettings>
</ajaxNet>
<locationpath="ajaxpro"allowOverride="true"inheritInChildApplications="false">
<system.web>
<globalizationrequestEncoding="utf-8"responseEncoding="utf-8"fileEncoding="utf-8"/>
<!--foriis7
<system.webServer>
<handlers>
<addverb="*"path="*.ashx"name="AjaxPro"type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</handlers>
</system.webServer>-->
<!--foriis6-->
<httpHandlers>
<addverb="*"path="*.ashx"type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
</location>
<!--ajax-->
<system.web>
<customErrorsmode="Off"/>
<compilationdebug="true">
<assemblies>
<addassembly="System.Core,Version=3.5.0.0,Culture=neutral,PublicKeyToken=B77A5C561934E089"/>
<addassembly="System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
<addassembly="System.Data.DataSetExtensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=B77A5C561934E089"/>
<addassembly="System.Xml.Linq,Version=3.5.0.0,Culture=neutral,PublicKeyToken=B77A5C561934E089"/>

<addassembly="System.ServiceModel,Version=3.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
<addassembly="System.ServiceModel.Web,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>
</assemblies>

<buildProviders>
<removeextension=".svc"/>
<addextension=".svc"type="System.ServiceModel.Activation.ServiceBuildProvider,System.ServiceModel,Version=3.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
</buildProviders>
</compilation>



<!--
通过<authentication>节可以配置
安全身份验证模式,ASP.NET
使用该模式来识别来访用户身份。
-->
<authenticationmode="Windows"/>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过<customErrors>节
可以配置相应的处理步骤。具体而言,
开发人员通过该节可配置要显示的html错误页,
以代替错误堆栈跟踪。

<customErrorsmode="RemoteOnly"defaultRedirect="GenericErrorPage.htm">
<errorstatusCode="403"redirect="NoAccess.htm"/>
<errorstatusCode="404"redirect="FileNotFound.htm"/>
</customErrors>
-->
<pages>
<controls>
<addtagPrefix="asp"namespace="System.Web.UI"assembly="System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
<addtagPrefix="asp"namespace="System.Web.UI.WebControls"assembly="System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>

<httpHandlers>
<removeverb="*"path="*.asmx"/>
<addverb="*"path="*.asmx"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
<addverb="*"path="*_AppService.axd"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
<addverb="GET,HEAD"path="ScriptResource.axd"type="System.Web.Handlers.ScriptResourceHandler,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"validate="false"/>
</httpHandlers>
<httpModules>
<addname="ScriptModule"type="System.Web.Handlers.ScriptModule,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
<addname="ServiceModel"type="System.ServiceModel.Activation.HttpModule,System.ServiceModel,Version=3.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compilerlanguage="c#;cs;csharp"extension=".cs"warningLevel="4"
type="Microsoft.CSharp.CSharpCodeProvider,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089">
<providerOptionname="CompilerVersion"value="v3.5"/>
<providerOptionname="WarnAsError"value="false"/>
</compiler>
<compilerlanguage="vb;vbs;visualbasic;vbscript"extension=".vb"warningLevel="4"
type="Microsoft.VisualBasic.VBCodeProvider,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089">
<providerOptionname="CompilerVersion"value="v3.5"/>
<providerOptionname="OptionInfer"value="true"/>
<providerOptionname="WarnAsError"value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--
system.webServer节是在InternetInformationServices7.0下运行ASP.NETAJAX
所必需的。对早期版本的IIS来说则不需要此节。
-->
<system.webServer>
<validationvalidateIntegratedModeConfiguration="false"/>
<urlCompressiondoStaticCompression="true"doDynamicCompression="true"/>

<httpErrorserrorMode="Detailed"/>
<aspscriptErrorSentToBrowser="true"/>



<modules>
<removename="ScriptModule"/>
<addname="ScriptModule"preCondition="managedHandler"type="System.Web.Handlers.ScriptModule,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<removename="WebServiceHandlerFactory-Integrated"/>
<removename="ScriptHandlerFactory"/>
<removename="ScriptHandlerFactoryAppServices"/>
<removename="ScriptResource"/>
<removename="svc"/>
<addname="svc"path="*.svc"verb="*"type="System.ServiceModel.Activation.HttpHandler,System.ServiceModel,Version=3.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"preCondition="integratedMode"/>

<addverb="*"path="*.ashx"name="AjaxPro"type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
<addname="ScriptHandlerFactory"verb="*"path="*.asmx"preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
<addname="ScriptHandlerFactoryAppServices"verb="*"path="*_AppService.axd"preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
<addname="ScriptResource"preCondition="integratedMode"verb="GET,HEAD"path="ScriptResource.axd"type="System.Web.Handlers.ScriptResourceHandler,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
<runtime>
<assemblyBindingappliesTo="v2.0.50727"xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentityname="MySql.Data"publicKeyToken="C5687FC88969C44D"/>
<!--<bindingRedirectoldVersion="5.0.7.0"newVersion="6.3.2.0"/>-->
<bindingRedirectoldVersion="5.0.7.0"newVersion="6.2.3.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentityname="System.Web.Extensions"publicKeyToken="31bf3856ad364e35"/>
<bindingRedirectoldVersion="1.0.0.0-1.1.0.0"newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentityname="System.Web.Extensions.Design"publicKeyToken="31bf3856ad364e35"/>
<bindingRedirectoldVersion="1.0.0.0-1.1.0.0"newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behaviorname="imgServiceAspNetAjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironmentaspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
<!--<addprefix="http://demo.vs2010.com"/>-->
</baseAddressPrefixFilters>
</serviceHostingEnvironment>

<services>
<servicename="imgService">
<endpointaddress=""behaviorConfiguration="imgServiceAspNetAjaxBehavior"
binding="webHttpBinding"contract="imgService"/>
</service>
</services>
</system.serviceModel>
</configuration>

好的,成功!上传到gd空间试试:)