如何打开ashx文件向.ashx传值

Posts - 34,
Articles - 0,
Comments - 9
11:28 by 雏菊之秋, ... 阅读,
&&& 具体功能为,在文件数据列表中选择一行,点击表格上方的下载按钮,下载文件。由于表格中不包含文件路径,只能取到在数据库表中的ID,所以具体实现就是这样:首先点击一行,获取点击的一行数据的ID,用Ajax传值到Ashx服务文件,在Ashx中根据ID取到文件路径,转换为服务器虚拟路径后返回到Web页面。在Web页面中用Ajax进行下载。
&&& 一开始尝试过直接在Ashx服务处理中response.writeFile(),结果不能下载,原因可能是因为Ajax请求,而返回的时候直接返回到了Ajax的回调函数中。于是只好取到文件的路径后直接返回回调函数,然后在回调函数路面下载。
&&& 在网上找到好多种下载方式,用jQuery来处理文件路径最多的建议就是window.href=url,可能很多需求并不是下载文件,而是重定向吧。如果下载文件这样写也是可以的,只不过用户体验不好,点击下载后就跳转页面了,下载完还要后退或者怎么样。所以我就没有用这种方式。
&&& 下面还是讲讲我用的方法吧,比较巧妙。就是先在页面中添加一个隐藏的a标签,让其隐藏,在获取到文件路径的时候赋值给a的href,然后触发a标签的click事件就行了。
&a id="dp" href="" style="display:"&&span id="fp"&&/span&&/a&
&&& 这里a标签如果直接触发的话没有用,所以在其中加了一个span标签,触发的span标签的click事件就可以了。
function Download() {
//在选择某行的时候给rowid赋值,这里取值即可
var id = $("#rowid").val();
type: "POST",
url: "Download.ashx",
dataType: "json",
action: "DownLoad",
success: function (data) {
if (data != null || data != "") {
//获取返回的文件路径
var path = data[0]["path"].toString();
//给a标签赋值
$("#dp").attr("href", path);
//这里的fp是a标签中的span标签的ID
$("#fp").click();
alert("文件不存在");
&&& 这的确是一个比较实用的小诀窍,这下再也不用担心Ajax文件下载的问题啦。2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2016年12月 .NET技术大版内专家分月排行榜第二2016年9月 .NET技术大版内专家分月排行榜第二2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
2014年1月 荣获微软MVP称号2012年1月 荣获微软MVP称号
2010年11月 挨踢职涯大版内专家分月排行榜第一2010年10月 挨踢职涯大版内专家分月排行榜第一
2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2016年12月 .NET技术大版内专家分月排行榜第二2016年9月 .NET技术大版内专家分月排行榜第二2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
2011年4月 .NET技术大版内专家分月排行榜第二
2011年3月 .NET技术大版内专家分月排行榜第三
2012年2月 挨踢职涯大版内专家分月排行榜第三2011年11月 挨踢职涯大版内专家分月排行榜第三2011年10月 挨踢职涯大版内专家分月排行榜第三
2011年9月 总版技术专家分月排行榜第一2011年8月 总版技术专家分月排行榜第一2011年7月 总版技术专家分月排行榜第一2011年6月 总版技术专家分月排行榜第一2011年5月 总版技术专家分月排行榜第一2011年4月 总版技术专家分月排行榜第一
2011年3月 总版技术专家分月排行榜第二2011年2月 总版技术专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。Ajax 调用(传值)一般处理程序(.ashx) - Cyclone77 - 推酷
Ajax 调用(传值)一般处理程序(.ashx) - Cyclone77
问题:在一般处理程序(.ashx)中累加[index='b']的值
难点:前台获取JSON值后台解析
//#region 把index=b的值存在JSON对象中
function AjaxGetSum() {
var arr = [];
$(&input[index='b']&).each(function () {
var arrObject = {};
var tempVal = $(this).val();
if (!$.gstr.isEmpty(tempVal)) { //本公司自己封装的js $.gstr.isEmpty(st) 判断st是否为空,返回true/false
arrObject[&inValue&] = tempV
arr.push(arrObject);
var JsonString = JSON.stringify(arr); //转换成JSON类型的字符串
$.post(&HandlerSum.ashx&, { jsonVar: JsonString }, function (data) {
alert(data);
//#endregion
&一般处理程序中处理JSON数据
using System.Collections.G
using System.L
using System.W
using Newtonsoft.J
using Newtonsoft.Json.L
using Newtonsoft.Json.C
namespace Train_First.Ajax_Rpc
/// &summary&
/// HandlerSum 的摘要说明
/// &/summary&
public class HandlerSum : IHttpHandler
public void ProcessRequest(HttpContext context)
context.Response.ContentType = &text/plain&;
string ss = context.Request.Form[&jsonVar&]; //获取前台传递过来的授课JSON字符串数组
JArray javascript = (JArray)JsonConvert.DeserializeObject(ss);
//反序列化获取的JSON字符串数组
string StringSum = &&;
for (int i = 0; i & javascript.C i++)
JObject obj = (JObject)javascript[i];
string outValue = obj[&inValue&].ToString();
//将一个个反序列化的JSON字符串数组转换成对象
StringSum += outV
context.Response.Write(StringSum);
public bool IsReusable
HTML中的input
&input id=&Text2& name=&txtInfo& type=&text& index='b'/ &&br /&
&input id=&Text3& name=&txtInfo& type=&text& index='a'/&&br /&
&input id=&Text4& name=&txtInfo& type=&text& index='b'/&&br /&
&input id=&Text5& name=&txtInfo& type=&text& index='b'/&&br /&
&input id=&Text7& name=&txtInfo& type=&text& index='b'/&&br /&
&input id=&Text8& name=&txtInfo& type=&text& index='b'/&&br /&
&input id=&Text10& name=&txtInfo& type=&text& index='b'/&&br /&
&input id=&Text11& name=&txtInfo& type=&text& index='b'/&&br /&
&input id=&Text9& name=&txtInfo& type=&text& index='b' class='show'/&&br /&
&input id=&Text12& name=&txtInfo& type=&text& index='b' class='show'/&&br /&
&input id=&Text13& name=&txtInfo& type=&text& index='b' class='show'/&&br /&
&input id=&Text14& name=&txtInfo& type=&text& index='b' class='show'/&&br /&
&input id=&Text15& name=&txtInfo& type=&text& index='b' class='show'/&&br /&
总结:主要是转换JSON类型 和 $.Post的用法,还有在后台的解析
Cyclone77阅读(
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 如何打开ashx文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信