asp.net 建 ashx的时候为啥没有 ashx.cs 后台文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net 建 ashx的时候为啥没有 ashx.cs 后台文件相关的知识,希望对你有一定的参考价值。

以前的项目有 然后 自己新建了一个项目 就没有 怎么回事
这是 ashx页面的代码
<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler

public void ProcessRequest (HttpContext context)
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");


public bool IsReusable
get
return false;




上面多了一行<%@ WebHandler Language="C#" Class="Handler" %>
不知道是不是这个原因 造成的ajax Xmlhttp.readyState 只能走到1 就没了

参考技术A ashx就这一个文件啊,你还找什么样的文件出来呢
<%@ WebHandler Language="C#" Class="_1111" %> 文件头必须的
参考技术B 一般处理文件时处理HTTP请求和会发服务器响应的,本身就是代码的逻辑部分,怎么会分前台和后台的呢?cx文件只是aspx页面才会有的。 参考技术C ashx是一般处理程序,这是一个干净的后台处理程序,可以理解为删除了前台html标签的aspx,一般和js构成ajax配套使用,进行调试,方可以实现对应的功能。 参考技术D

理论上Handler.ashx的代码是

<%@ WebHandler Language="C#" Class="Handler" %>

Handler.ashx.cs的代码是

using System;
using System.Web;
public class Handler : IHttpHandler 
public void ProcessRequest (HttpContext context) 
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");

public bool IsReusable 
get 
return false;


你这些代码齐全了,不过文件可能不太对,你用的vs2008?我不知道是不是ide的问题,我们都用vs2012了。要不删了重新新建一下试试呢?或者自己手动新建文件把代码拷进去。

第5个回答  2018-08-10 aspx,ashx 其实都cs的一部份,你可以把你现在ashx删了,直接创建一个cs文件继承IHttpHandler。它类似于拦截器的功能

支持 JSONP 的 ASP.NET 通用 HTTP 处理程序 (.ashx)

【中文标题】支持 JSONP 的 ASP.NET 通用 HTTP 处理程序 (.ashx)【英文标题】:ASP.NET Generic HTTP Handler (.ashx) supporting JSONP 【发布时间】:2011-04-11 19:18:19 【问题描述】:

谁能展示一个返回 JSON 并支持跨域调用的 HTTP 处理程序的示例。我正在使用 jQuery 的 getJSON() 向我的 Web 服务器上的 .ashx 文件发送请求。

我知道我需要添加 ?callback=?到我的 getJSON() url 中的 url,但我不确定在我的 ashx 文件中的服务器上需要做什么?

【问题讨论】:

ASP.NET - Passing JSON from jQuery to ASHX的可能重复 @Chris Lively - 不要这么认为。 【参考方案1】:

想通了。我将此函数添加到我的处理程序并调用它:

void WriteCallback(HttpContext context, string json)
        
            context.Response.Write(string.Format("0(1);", context.Request["callback"], json));
        

然后在浏览器中:

$(function () 
    $.getJSON('MyHandler.ashx?callback=?',  Foo: "Bar" , function (data) 

        if (data.SomeCondition)
            $('#someElement').show();

    );
);

【讨论】:

+1 对于第一个函数 - 今天在执行此操作时为我节省了一些时间。 谢谢!我整天都在用头撞墙,没有意识到在进行 JSONP 调用时必须用回调函数名称包装 JSON 输出。【参考方案2】:

“跨域”可能成为问题的唯一方法是,如果您使用某种状态机制(即:cookie)作为调用的一部分。你不应该这样做。

否则,请参阅此链接:ASP.NET - Passing JSON from jQuery to ASHX 了解信息。有一些很好的代码示例可以告诉你该怎么做。

【讨论】:

抱歉,这根本没有帮助。

以上是关于asp.net 建 ashx的时候为啥没有 ashx.cs 后台文件的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 一般处理程序(ashx)如何多次接收上传文件(多文件批量上传)

asp.net 一般处理程序(ashx)如何多次接收上传文件(多文件批量上传)

Asp.Net 会话在 ashx 文件中为空

ASP.NET 使用 ASHX 返回 JSON

如何在 ASP.NET MVC 中使用通用处理程序 (ASHX)?

支持 JSONP 的 ASP.NET 通用 HTTP 处理程序 (.ashx)