日期:2014-05-17  浏览次数:20517 次

如何在ashx页面里面使用Response对象
C# code

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

using System;
using System.Web;
using System.IO;
using System.Drawing;

public class SavePhoto : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        //System.Web.UI.Page page = new System.Web.UI.Page();

        context.Response.ContentType = "text/plain";

        if (context.Request.Form["PHeight"] != null && context.Request.Form["PWidth"] != null && context.Request.Form["strBMP"] != null)
        {
            try
            {
                int height = int.Parse(context.Request.Form["PHeight"].ToString());
                int width = int.Parse(context.Request.Form["PWidth"].ToString());
                string strBmp = context.Request.Form["strBMP"].ToString();
                SaveBmp(BuildBitmap(width, height, strBmp), context.Server.MapPath("../../../images/CameraPhoto"));

                //System.Web.HttpContext.Current.Response.Write("<script>alert('111');</script>");
                context.Response.Write("RetMsg=true");

            }
            catch (Exception)
            {
                context.Response.Write("RetMsg=false");
            }
        }
    }


我想在这里上传成功后,写提示框体,却无法实现...
请问该怎么写?

------解决方案--------------------
可以传值到前台页面 前台页面弹出提示框啊

------解决方案--------------------
这个真的不可以。。一般的处理方法是上传成功了 给前台传个状态回去 然后前台js 弹框。
------解决方案--------------------
//System.Web.HttpContext.Current.Response.Write("<script>alert('111');</script>");
context.Response.Write("RetMsg=true");
就是这样使用,只是Response.Write只是传出流的意思,没法马上执行。这个JS代码,只有服务端执行完了,传送到客服端,才会被执行
------解决方案--------------------
探讨
C# code

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

using System;
using System.Web;
using System.IO;
using System.Drawing;

public class SavePhoto : IHttpHandler
{
public void P……

------解决方案--------------------
写提示框体?
System.Web.HttpContext.Current.Response.Write("<script>alert('111');</script>");
改成
Page.ClientScript.RegisterStartupScript(GetType(),"","<script>alert('111');</script>");

------解决方案--------------------
C# code
                int height = int.Parse(context.Request.Form["PHeight"].ToString());
                int width = int.Parse(context.Request.Form["PWidth"].ToString());
                string strBmp = context.Request.Form["strBMP"].ToString();
                SaveBmp(BuildBitmap(width, height, strBmp), context.Server.MapPath("../../../images/CameraPhoto"));

                //System.Web.HttpContext.Current.Response.Write("<script>alert('111');</script>");
                context.Response.Write("<h2 style='color:green'>保存文件成功</h2><hr />文件已经保存到服务器路径:"+
                       context.Server.MapPath("../../../images/CameraPhoto"));

------解决方案--------------------

handler中返回状态,比如:1:成功,2:失败

ajax的回调函数中。。

if(返回值 == "1")
{
alert("成功");