国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:41:42
字體:
來源:轉載
供稿:網友

示例代碼下載: 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=en&id=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"];
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 中查看.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊通| 贵德县| 论坛| 永清县| 盐源县| 苍山县| 无为县| 邵东县| 镇原县| 金山区| 潼关县| 嘉善县| 金坛市| 三台县| 古交市| 新泰市| 石狮市| 贵定县| 清苑县| 徐水县| 建昌县| 蒙城县| 岳阳市| 蛟河市| 慈利县| 华蓥市| 上栗县| 高陵县| 肥东县| 巫溪县| 托克托县| 江山市| 阳西县| 江安县| 吴川市| 威海市| 江门市| 和田县| 神农架林区| 皮山县| 海淀区|