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

原创 2014年03月07日 22:09:41

本文讲述如何在 在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. 添加新项目


4. 选择Application page


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

SharePoint 2013 (注意替换class name)

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

SharePoint 2010(注意替换class name):

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

6.  Test.ashx.cs 代码

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Web;

namespace Testashx
{
    public partial class Test : IHttpHandler
    {
        public bool IsReusable
        {
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            context.Response.ContentType = "application/json";
            var jsonResult = jsonSerializer.Serialize(new JosnResult (){Name="Abraham Cheng", Age= 29 });// return what you want
            context.Response.Write(jsonResult);
        }     
    }
    class JosnResult
    {
      public  string Name {get; set;}
       public int Age {get; set;}
    }
}
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对象了

   


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

           



有朋自远方来——技术书籍翻译的传播学体验

有朋自远方来——技术书籍翻译的传播学体验熊节(本文首发于《中华读书报》2004年2月4日号)  ●翻译就是作者的魂灵借着译者的纸笔转世重生。遗憾的是,不论作为译者、读者还是编辑,我手上经过的每一个译本...
  • gigix
  • gigix
  • 2004-02-07 22:52:00
  • 3378

Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目

默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题。 以管理员身份启动vs2013,创建一个"SharePoint 2013 - ...
  • sygwin_net
  • sygwin_net
  • 2016-12-16 09:14:43
  • 1810

Sharepoint 2010 使用asp.net web应用程序,调试sharepoint程序终极解决办法

一直以来很多人都会被一件事所困扰,就是不管是07还是10在64位的环境,web应用程序没有办法直接运行调试sharepoint的程序了经常会提示这样一个错误“找不到位于 http://localhos...
  • yun_liang1028
  • yun_liang1028
  • 2011-01-04 18:33:00
  • 4453

SharePoint 中使用Json传递数据到后台的 ashx

最近项目中遇到需要使用Json传递数据到SharePoint后台的 ashx,goole下方案,但遇到不少问题。最终解决了,把遇到的问题和大家分享下。...
  • farawayplace613
  • farawayplace613
  • 2014-03-22 09:14:05
  • 1923

创建用于自定义SharePoint解决方案部署的Visual Studio项目

转:http://soft.zdnet.com.cn/software_zone/2007/0903/488083.shtml 在基于SharePoint的开发中,我们通常会在WSS的TEMPLAT...
  • jackljf
  • jackljf
  • 2013-12-12 23:28:27
  • 616

部署解决方案包 (SharePoint Server 2010)

转:http://technet.microsoft.com/zh-cn/library/cc262995(v=office.14).aspx 本文介绍各个解决方案包,及其在 Microsoft S...
  • jackljf
  • jackljf
  • 2014-01-07 17:21:36
  • 567

使用SharePoint创建并自定义网站页面

使用SharePoint创建并自定义网站页面,学习使用SharePoint Designer比较基础的自定义方法...
  • u012025054
  • u012025054
  • 2014-06-15 10:47:46
  • 1711

SharePoint 解决方案和功能-PowerShell

1. 添加解决方案到SharePoint场 Add-SPSolution "c:\newsolution.wsp" 2. 获取场中的解决方案 Get-SPSolution 3. 获取指定的解决...
  • FoxDave
  • FoxDave
  • 2013-06-30 15:37:24
  • 2891

VS2010中ashx文件中代码折叠实现方法(超级有用,终于找到了方法!)

来源:http://blog.sina.com.cn/s/blog_6d26754501017a5p.html 工具 --- 选项 --- 文本编辑器 --- 文件扩展名,只要在右侧添加 ashx ...
  • dxnn520
  • dxnn520
  • 2012-11-07 11:08:23
  • 7414

搭建asp.net网站

ASP.NET开发学习视频教程大全(共800集) http://blog.chinaunix.net/uid-25454054-id-3450228.html 由于扩展配置问题而...
  • sjpljr
  • sjpljr
  • 2017-03-28 16:42:36
  • 550
收藏助手
不良信息举报
您举报文章:在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)
举报原因:
原因补充:

(最多只允许输入30个字)