婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用ASP.NET一般處理程序或WebService返回JSON的實現代碼

使用ASP.NET一般處理程序或WebService返回JSON的實現代碼

熱門標簽:上海楊浦怎么申請申請400電話 地圖標注多個行程 云南外呼電銷機器人系統 陜西人工外呼系統哪家好 浙江外呼系統怎么安裝 銅川小型外呼系統運營商 廈門商鋪地圖標注 山西防封卡電銷卡套餐 海外地圖標注門市標

示例代碼下載: http://zsharedcode.googlecode.com/files/JQueryElementDemo.rar

本文中所包含的內容如下:

  * 準備
  * 一般處理程序/ashx
  * WebService/asmx準備

如果希望通過 ashx 或者 asmx 來返回 JSON, 那么需要引用程序集 System.Web.Extensions.dll, 在 .NET 3.5, 4.0 中已經默認包含. 對于 .NET 2.0, 3.0, 需要安裝 ASP.NET 2.0 AJAX, 可以在 http://www.microsoft.com/download/en/details.aspx?displaylang=enid=883 下載.

一般處理程序/ashx

使用一般處理程序返回 JSON, 對于不同版本的 .NET 都是類似, 請看下面的 handler.ashx 的代碼:

復制代碼 代碼如下:

%@ WebHandler Language="C#" Class="handler" %>
using System;
using System.Web;
using System.Web.Script.Serialization;
using System.Collections.Generic;
public class handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/javascript";
context.Response.Cache.SetNoStore ( );
string name = context.Request["name"];
SortedDictionarystring, object> values = new SortedDictionarystring, object>();
values.Add("message",
string.IsNullOrEmpty(name) ? "無名氏" :
string.Format("你好 {0}, {1}", name, DateTime.Now));
context.Response.Write(new JavaScriptSerializer().Serialize(values));
}
public bool IsReusable
{
get { return false; }
}
}

上面的例子中, 通過 JavaScriptSerializer 類的 Serialize 方法, 將對象轉化為 JSON 對應的字符串. 而轉化的對象是 SortedDictionary, 會生成 { "message": "你好 x, 20xx-xx-xx xx:xx:xx" } 這樣類似的字符串. 如果需要返回數組, 可以定義 object[] 來轉換. 代碼中還使用了 context.Response.Cache.SetNoStore ( ); 來讓瀏覽器每次請求 ashx 時都重新訪問, 而不是使用緩存.
如果使用 jQuery, 可以使用下面的函數來接收 JSON:
復制代碼 代碼如下:

function(data){
alert(data.message);
}

WebService/asmx
在不同版本的 .NET 中, 通過 javascript 訪問 WebService 并返回 JSON 是略有不同的. 首先, 可以分別采用不同的 Web.config 文件.法全部列出, 如有需要請參考:
.NET 2.0, 3.0 Web.config
復制代碼 代碼如下:

?xml version="1.0"?>
configuration>
system.web>
compilation debug="true">
assemblies>
add
assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
/assemblies>
/compilation>
pages/>
httpHandlers>
remove verb="*" path="*.asmx"/>
add verb="*" path="*.asmx"
type="System.Web.Script.Services.ScriptHandlerFactory"
validate="false"/>
/httpHandlers>
/system.web>
/configuration>

.NET 3.5 Web.config
.NET 4.0 Web.config
以上兩個版本的 Web.config 可以在示例壓縮包中的 Web.3.5.config 和 Web.4.config 中查看.
下面是 webservice.asmx/webservice.cs 的代碼:
復制代碼 代碼如下:

%@ WebService Language="C#" CodeBehind="~/App_Code/webservice.cs" Class="webservice" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Web.Script.Serialization;
using System.Collections.Generic;
[WebService ( Namespace = "http://tempuri.org/" )]
[WebServiceBinding ( ConformsTo = WsiProfiles.BasicProfile1_1 )]
[ScriptService]
public class webservice : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod]
public SortedDictionarystring, object> Save ( string name )
{
this.Context.Response.Cache.SetNoStore ( );
SortedDictionarystring, object> values = new SortedDictionarystring, object> ( );
values.Add ( "message",
string.IsNullOrEmpty ( name ) ? "無名氏" :
string.Format ( "你好 {0}, {1}", name, DateTime.Now ) );
return values;
}
}

為類添加屬性 ScriptService, 并對類中的方法使用屬性 ScriptMethod, 可以讓 javascript 來調用這些方法. 這里不需要再使用 JavaScriptSerializer 將對象轉化為 JSON 字符串, 而是直接返回對象即可. 上面的代碼中返回了 SortedDictionary, 在 .NET 2.0, 3.0 中將類似于 { "message": "你好 x, 20xx-xx-xx xx:xx:xx" } 的形式, 而對于 .NET 3.5, 4.0 則是 { "d": { "message": "你好 x, 20xx-xx-xx xx:xx:xx" } }, 因此可以分別在 jQuery 中使用下面的函數來接受 JSON:
復制代碼 代碼如下:

function(data){
alert(data.message);
}
function(data){
alert(data.d.message);
}

JQueryElement 是開源共享的代碼, 可以在 http://code.google.com/p/zsharedcode/wiki/Download 頁面下載 dll 或者是源代碼.

實際過程演示: http://www.tudou.com/programs/view/rHCYHX9cmcI/, 建議全屏觀看.

歡迎訪問 panzer 開源項目, http://zsharedcode.googlecode.com/ , 其中包含了 IEBrowser 控制 WebBrowser 執行各種 js 和 jQuery 腳本以及錄制功能 和 jQueryUI 的 Asp.net 控件 JQueryElement.
您可能感興趣的文章:
  • C# .Net動態調用webService實現思路及代碼
  • asp.net(c#)動態修改webservice的地址和端口(動態修改配置文件)
  • C#發送HttpPost請求來調用WebService的方法
  • C#動態webservice調用接口
  • c# JSON返回格式的WEB SERVICE
  • c#動態調用Webservice的兩種方法實例
  • c#動態改變webservice的url訪問地址
  • .net實現webservice簡單實例分享
  • .NET C#創建WebService服務簡單實例

標簽:自貢 朔州 常州 信陽 許昌 萊蕪 西雙版納 孝感

巨人網絡通訊聲明:本文標題《使用ASP.NET一般處理程序或WebService返回JSON的實現代碼》,本文關鍵詞  使用,ASP.NET,一般,處理,程序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用ASP.NET一般處理程序或WebService返回JSON的實現代碼》相關的同類信息!
  • 本頁收集關于使用ASP.NET一般處理程序或WebService返回JSON的實現代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 武平县| 虞城县| 灵台县| 和田市| 梨树县| 新密市| 临朐县| 桦南县| 鲁甸县| 微山县| 松阳县| 临泉县| 策勒县| 英德市| 孟村| 郧西县| 炎陵县| 盖州市| 鹤壁市| 尼玛县| 买车| 奇台县| 获嘉县| 阳城县| 莲花县| 黎城县| 丽江市| 库伦旗| 遵义县| 运城市| 社旗县| 炉霍县| 门头沟区| 涡阳县| 十堰市| 墨竹工卡县| 张北县| 高台县| 资源县| 乌鲁木齐市| 汝南县|