.net 怎么调用ashx文件的方法,方法中包含一些参数。该ASHX返回一张图片。

 我来答
百度网友b7648df
2011-12-14
知道答主
回答量:20
采纳率:0%
帮助的人:25.8万
展开全部
一般处理文件(ASHX)是可以通过前台调用的,你可以使用如: <img src="aaa.ashx?width=100&&Height=200" />这种方试直接调用这个返回图片的ASHX文件。
ASHX文件如下:
// 这个方法就是ASHX文件的入口点,建议在这里进行参数处理
public void ProcessRequest(HttpContext context)
{
//定议图片大小
int widthtmp = 50;
int Heighttmp = 50;
if (context.Request.QueryString["width"] != null && !string.IsNullOrEmpty(context.Request.QueryString["width"].ToString()))
{
widthtmp = Convert.ToInt32(context.Request.QueryString["width"]);
}
if (context.Request.QueryString["Height"] != null && !string.IsNullOrEmpty(context.Request.QueryString["Height"].ToString()))
{
Heighttmp = Convert.ToInt32(context.Request.QueryString["width"]);
}
//调用返图片方法并将返回的二进制写入HTTP输出流
context.Response.BinaryWrite(getimg(widthtmp, Heighttmp));
}
private byte[] getimg(int widthtmp,int Heighttmp)
{
//方法体记自定义
//getimg方法就是你说的返回一张图片的方法了,不过这个方法最后记得将图片转成二进制进行返回,
}

此外ASHX文件还可被JS调用和后台调用``通过JS加ASHX文件用来进行数剧访问就是人们所说的异步了。
如有兴趣可以直接找我``我可以传一些资料给你看
追问
ASHX里面有一个方法,方法带几个参数,怎么在后台向这个方法传参。你QQ多少啊?我加你?
eg.
public Image GetImage(DataTable dt, int width, int height, int rat, string ValueFieldName, string KeyFieldName)
{
...
}
我想在aspx页面后台里向这个方法传参数。
追答

aaa.ashx?后面不是参数么?

参数接收不都在这里么?

if (context.Request.QueryString["width"] != null && !string.IsNullOrEmpty(context.Request.QueryString["width"].ToString()))
{
widthtmp = Convert.ToInt32(context.Request.QueryString["width"]);
}
if (context.Request.QueryString["Height"] != null && !string.IsNullOrEmpty(context.Request.QueryString["Height"].ToString()))
{
Heighttmp = Convert.ToInt32(context.Request.QueryString["width"]);
}
你要多少就传多少啊```我写的传了两个
yhyyxyyy
2011-12-13 · TA获得超过185个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:91.9万
展开全部
<%@ WebHandler Language="C#" Class="ImageHandler" %>

using System;
using System.Web;
/// <summary>
/// 这就一个没有任何实现的一般处理程序。
/// </summary>
public class ImageHandler : IHttpHandler {

public void ProcessRequest (HttpContext context)
{
//获取虚拟目录的物理路径。
string path = context.Server.MapPath("");
//获取图片文件的二进制数据。
byte[] datas = System.IO.File.ReadAllBytes(path + "\\U1513.jpg");
//将二进制数据写入到输出流中。
context.Response.OutputStream.Write(datas, 0, datas.Length);
}

public bool IsReusable {
get {
return false;
}
}
}
default.aspx文件
注意上面的代码:<asp:Image ID="Image1" runat="server" ImageUrl="~/ImageHandler.ashx"/></div> 中ImageUrl指向的是ImageHandler.ashx文件。
追问
这个我知道哈。我的意思是,ASHX里面有一个方法,方法带几个参数,怎么在后台向这个方法传参。
eg.
public Image GetImage(DataTable dt, int width, int height, int rat, string ValueFieldName, string KeyFieldName)
{
...
}
追答
不是有HttpContext context这个吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-13
展开全部
关注
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式