转:在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)

本文讲述如何在 在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)。

一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名。一个httpHandler接受并处理一个http请求,类比于Java中的servlet。类比于在Java中需要继承HttpServlet类,在.net中需要实现IHttpHandler接口,这个接口有一个IsReusable成员,一个待实现的方法ProcessRequest(HttpContextctx) 。程序在processRequest方法中处理接受到的Http请求。成员IsReusable指定此IhttpHnadler的实例是否可以被用来处理多个请求。

.ashx程序适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。

下面笔者将介绍如何在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler):

1. 新建一个场解决方案

2. 映射 SharePoint 的Layout文件夹

3. 添加新项目

转:在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)

4. 选择Application page

转:在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)

5. 将Test.ashx的代码修改为

SharePoint 2013 (注意替换class name)

 

  1.   <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
  2.   <%@ Assembly Name="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  3.   <%@ WebHandler Language="C#" Class="Testashx.Test" %>


SharePoint 2010( 注意替换class name):

 

 

 

  1.   <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
  2.   <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  3.   <%@ WebHandler Language="C#" Class="Testashx.Test" %>


6.  Test.ashx.cs 代码

 

 

 

  1.   using System;
  2.   using Microsoft.SharePoint;
  3.   using Microsoft.SharePoint.WebControls;
  4.   using System.Web;
  5.    
  6.   namespace Testashx
  7.   {
  8.   public partial class Test : IHttpHandler
  9.   {
  10.   public bool IsReusable
  11.   {
  12.   get { return true; }
  13.   }
  14.    
  15.   public void ProcessRequest(HttpContext context)
  16.   {
  17.   System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
  18.   context.Response.ContentType = "application/json";
  19.   var jsonResult = jsonSerializer.Serialize(new JosnResult (){Name="Abraham Cheng", Age= 29 });// return what you want
  20.   context.Response.Write(jsonResult);
  21.   }
  22.   }
  23.   class JosnResult
  24.   {
  25.   public string Name {get; set;}
  26.   public int Age {get; set;}
  27.   }
  28.   }

7. UnLoad 项目,编辑项目工程文件,在PropertyGroup节点中插入:

 

 

 

 <TokenReplacementFileExtensions>ashx</TokenReplacementFileExtensions>



8. Reload项目, 部署解决方案 

 

 

9. 验证

     a. SharePoint 2013  验证地址为 .../_layouts/15/xxx/Text.ashx

    b. SharePoint 2010 验证地址为 .../_layouts/xxx/Text.ashx

    打开以上地址就可以返回一个Json对象了

   转:在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)

 

在实际应用可以用Ajax来请求Text.ashx来获取数据,展现在前台,达到不用刷新页面更新数据的目的。

           

 

上一篇:义乌集训7.12 contest 5题解


下一篇:UCF Local Programming Contest Round 1A 训练联盟暑假场1 题解