您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關WCF與ExtJs實現(xiàn)項目的實例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。
當我在寫過用Restful方式調用WCF進行上傳下載后,愕然發(fā)現(xiàn)原來WCF支持原生數(shù)據(jù)(Raw)的返回,這就解決了ExtJs與Wcf之間進行跨域調用中的難題:返回數(shù)據(jù)必須滿足<script>格式。下面根據(jù)WCF與ExtJs之間的跨域訪問中實現(xiàn)的項目,通過Stream和ContentType的聯(lián)合使用,返回原生數(shù)據(jù)給Extjs,從而實現(xiàn)跨域調用。
***步:在PageGridService.svc后臺代碼中,添加操作契約GetProductsByPageCorssDomain,代碼為:
[OperationContract] [WebInvoke(Method = "*", ResponseFormat = WebMessageFormat.Json, UriTemplate = "GetProductsByPageCorssDomain?start={start}&limit={limit}&callback={callback}")] public Stream GetProductsByPageCorssDomain(int start, int limit,string callback) { ProductsDataContext productDbContext = new ProductsDataContext(); IQueryable<Product> res = productDbContext.Product.Select(product => product); PageData<Product[]> returnData = new PageData<Product[]>(); returnData.TotolRecord = res.ToArray<Product>().Length; resres = res.Skip<Product>(start); resres = res.Take<Product>(limit); returnData.Data = res.ToArray<Product>(); System.Runtime.Serialization.Json.DataContractJsonSerializer formater = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(PageData<Product[]>)); MemoryStream ms = new MemoryStream(); formater.WriteObject(ms, returnData); ms.Position = 0; StreamReader sr = new StreamReader(ms); string objContent = sr.ReadToEnd(); string returnStr = callback+"("+objContent+")"; sr.Close(); ms = new MemoryStream(); StreamWriter sw = new StreamWriter(ms); sw.AutoFlush = true; sw.Write(returnStr); ms.Position = 0; WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain"; return ms; }
第二步:在項目中創(chuàng)建一個新的htm頁面:PageGridCorssDomainWithRow.htm,代碼為:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>ExtJs+WCF+LINQ打造分頁Grid</title> <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" /> <script type="text/javascript" src="adapter/ext/ext-base.js" charset="gb2312"></script> <script type="text/javascript" src="ext-all-debug.js" charset="gb2312"></script> <link rel="stylesheet" type="text/css" href="shared/examples.css" /> <script type="text/javascript" src="shared/examples.js" charset="gb2312"></script> <script type="text/javascript" src="PageGridCrossDomainWithRow.js" charset="gb2312"></script> </head> <body> <h2> ExtJs+WCF+LINQ打造分頁跨域Grid</h2> <div id="page-grid"> </div> </body> </html>
看完上述內容,你們對WCF與ExtJs實現(xiàn)項目的實例分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。