亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:24:43
字體:
來源:轉載
供稿:網友

示例代碼下載:

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

  * 準備
  * 一般處理程序/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, 可以在 ?displaylang=en&id=883 下載.

一般處理程序/ashx

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

復制代碼 代碼如下:


<%@ WebHandler Language="C#" %>
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"];
SortedDictionary<string, object> values = new SortedDictionary<string, 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" %>
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 SortedDictionary<string, object> Save ( string name )
{
this.Context.Response.Cache.SetNoStore ( );
SortedDictionary<string, object> values = new SortedDictionary<string, 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 是開源共享的代碼, 可以在 頁面下載 dll 或者是源代碼.

實際過程演示: , 建議全屏觀看.

歡迎訪問 panzer 開源項目, , 其中包含了 IEBrowser 控制 WebBrowser 執行各種 js 和 jQuery 腳本以及錄制功能 和 jQueryUI 的 Asp.net 控件 JQueryElement.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一视频网站| 日韩av在线免费播放| 久久亚洲精品毛片| 91嫩草在线视频| 国产成人亚洲综合青青| 日韩电影大全免费观看2023年上| 亚洲18私人小影院| 精品福利樱桃av导航| 热久久美女精品天天吊色| 尤物九九久久国产精品的特点| 欧美激情精品久久久久久| 久国内精品在线| 一道本无吗dⅴd在线播放一区| 久久香蕉国产线看观看av| 亚洲日本中文字幕| 亚洲性猛交xxxxwww| 亚洲成人av资源网| 亚洲激情国产精品| 日韩精品欧美国产精品忘忧草| 国产精品高潮粉嫩av| 911国产网站尤物在线观看| 国内自拍欧美激情| 精品亚洲一区二区三区在线播放| 欧美日韩在线免费| 日韩精品在线第一页| 成人国产精品日本在线| 国产精品18久久久久久麻辣| 日本伊人精品一区二区三区介绍| 中文字幕亚洲欧美日韩2019| 精品偷拍一区二区三区在线看| 伊人久久大香线蕉av一区二区| 神马久久久久久| 亚洲石原莉奈一区二区在线观看| 97国产成人精品视频| 国产精品视频久久久| 欧美极品第一页| 一区二区亚洲精品国产| 亚洲人线精品午夜| 亚洲精品欧美极品| 日韩一区二区福利| 欧美www视频在线观看| 国产精品a久久久久久| 精品毛片三在线观看| 亚洲美女精品成人在线视频| 亚洲精品456在线播放狼人| 丝袜一区二区三区| 国产亚洲xxx| 亚洲欧美日韩国产精品| 国产精品视频一| 欧美激情视频三区| 亚洲国产成人精品久久久国产成人一区| 91视频国产精品| 久久九九热免费视频| 欧美黄色www| 欧美激情精品久久久久久| 日韩视频在线免费观看| 国产日韩视频在线观看| 成人在线观看视频网站| 欧美一级片久久久久久久| 亚洲电影免费在线观看| 97成人精品区在线播放| 国产精品网站大全| 黑人精品xxx一区| 日韩av免费一区| 欧美精品久久一区二区| 欧美美最猛性xxxxxx| 福利一区视频在线观看| 国产精品∨欧美精品v日韩精品| 欧美日韩成人免费| 国产69精品久久久| 亚洲第一精品久久忘忧草社区| 欧美日韩亚洲一区二| www.久久久久久.com| 亚洲一区制服诱惑| 精品国产依人香蕉在线精品| 成人h视频在线观看播放| 亚洲激情在线观看视频免费| 91情侣偷在线精品国产| 久久激情五月丁香伊人| 日韩有码视频在线| 精品久久中文字幕久久av| 欧美夫妻性生活视频| 久久精视频免费在线久久完整在线看| 92国产精品视频| 亚洲区一区二区| 欧美色视频日本版| 久久国产精品首页| 亚洲天堂av电影| 国产精品极品尤物在线观看| 成人淫片在线看| 国产精品jizz在线观看麻豆| 7777免费精品视频| 欧美午夜精品久久久久久久| 亚洲欧洲xxxx| 国产精品午夜一区二区欲梦| 久久人人爽人人爽人人片av高请| 日韩在线观看免费全集电视剧网站| 色综合天天狠天天透天天伊人| 国产香蕉97碰碰久久人人| 亚洲天堂av在线免费观看| 欧美日韩国产在线播放| 日本精品免费一区二区三区| 久久综合电影一区| 日韩在线观看你懂的| 欧美大片在线影院| 国产亚洲精品久久久优势| 美女黄色丝袜一区| 4p变态网欧美系列| 国产精品久久99久久| 亚洲成人av中文字幕| 国产噜噜噜噜久久久久久久久| 欧美性20hd另类| 国产成人精品综合| 欧美激情第一页xxx| 欧美在线性爱视频| 国产亚洲精品美女| 91国产在线精品| 日韩在线免费观看视频| 欧美尤物巨大精品爽| 性欧美xxxx视频在线观看| 欧美国产日本高清在线| 亚洲一二三在线| 97在线观看免费高清| 日韩电影中文字幕一区| 欧美大片在线影院| 91美女片黄在线观看游戏| 亚洲第一综合天堂另类专| 亚洲mm色国产网站| 中文字幕在线看视频国产欧美在线看完整| 亚洲国产精品久久久| 日韩欧美国产成人| 国产美女久久久| 欧美成人精品激情在线观看| 久久精品久久久久久国产 免费| 欧美视频一区二区三区…| 精品福利在线视频| 不卡av在线播放| 91精品啪在线观看麻豆免费| 亚洲国产欧美一区二区三区久久| 欧美午夜片在线免费观看| 日韩av在线免费观看| 日韩av电影中文字幕| 69av在线播放| 97精品一区二区视频在线观看| 色婷婷成人综合| 日韩电影中文 亚洲精品乱码| 最近2019中文字幕mv免费看| 欧美性69xxxx肥| 国产mv久久久| 亚洲女人天堂色在线7777| 日韩精品在线看| 日韩中文在线中文网三级| 一本色道久久88亚洲综合88| 国产精品久久久久久亚洲调教| 日韩av电影院| 国产日韩av在线播放| 97国产精品久久| 日韩的一区二区| 久久全球大尺度高清视频| 97免费在线视频| 国产精品成人久久久久| 亚洲午夜女主播在线直播| 欧美精品激情blacked18| 黑丝美女久久久|