首页 新闻 会员 周边 捐助

一般处理程序中为何redirect不了?

0
悬赏园豆:20 [已解决问题] 解决于 2012-01-01 17:21

public class EditCategory : IHttpHandler
{
private SQLHelper sqlhelper = new SQLHelper();

public void ProcessRequest(HttpContext context)
{
HttpResponse response
= context.Response;
HttpRequest request
= context.Request;

int id = Convert.ToInt32(request.Form["id"]);
string name = request.Form["name"];
string location = request.Form["location"];

string sql = "update SD_Category set CategoryName=@cname,Location=@loc where CategoryID=@cid";
OleDbParameter[] param
= new OleDbParameter[]{
new OleDbParameter("@cname",name),
new OleDbParameter("@loc",location),
new OleDbParameter("@cid",id)
};
if (sqlhelper.ExecuteNonQuery(sql, param, CommandType.Text) > 0)
{
//response.ContentType = "application/json";
//response.Write("{result: '类别更新成功!'}"); //{}表示js中对象
response.Redirect("CategoryManage.aspx"); //这里跳转不了

}
}
}
一般处理程序和CategoryManage页面在同一目录。我已确定语句已经执行到了if里面,但就是跳转不了。用firebug查看状态码是302

问题补充:

这个问题的情景是这样的,有张CategoryManage页面,列出了当前所有的类别,点击每一行的编辑链接时,弹出jQueryUI的dialog供用户修改该类别信息,修改完后点击确定用jQuery Ajax提交到该一般处理程序中更新数据库,更新完成后重定向到类别管理页完成刷新 。

caochao88的主页 caochao88 | 初学一级 | 园豆:4
提问于:2011-05-24 21:58
< >
分享
最佳答案
0

jquery ajax 做数据传输而已吧,跳转的话还是在完成状态后用Js跳转吧。

收获园豆:20
Pacer | 初学一级 |园豆:175 | 2011-05-24 22:30
location.href这个是行了,但我还是不明白为什么在一般处理程序中不能跳转
caochao88 | 园豆:4 (初学一级) | 2011-05-24 22:37
首先要知道ajax是做什么的先吧:
“AJAX 是一种创建快速动态网页的技术。
AJAX 通过在后台与服务器交换少量数据的方式,允许网页进行异步更新。这意味着有可能在不重载整个页面的情况下,对网页的一部分进行更新。”
微软的ajax可以通过修改配置文件实现,但jquery ajax...也就只能是如原意进行数据交换而已
Pacer | 园豆:175 (初学一级) | 2011-05-24 22:51
我知道ajax的作用,就是不明白在一般处理程序中为什么不能redirect,知道的话给我说说呗
caochao88 | 园豆:4 (初学一级) | 2011-05-24 23:15
其他回答(4)
0

如果你是同步访问ashx文件的话,应该是可以跳转的,现在你是异步访问,异步访问不能改变页面的,只是单纯的数据传输

Overload | 园豆:205 (菜鸟二级) | 2011-05-25 08:22
0

试试这个js

window.parent.self.location.href=''

慧☆星 | 园豆:5722 (大侠五级) | 2011-05-25 09:17
这个是行的,昨晚试了,谢谢你
支持(0) 反对(0) caochao88 | 园豆:4 (初学一级) | 2011-05-25 15:43
0

悲剧哥

钧梓昊逑 | 园豆:945 (小虾三级) | 2011-05-25 11:14
0

一般处理程序啊,这个我想是为那些喜欢ajax的人弄的,这个时候用的只是客户端脚本,服务器端管不到他。

如果你是aspx页面去请求这个一般处理程序,为什么不直接请求aspx的后台?

顾晓北 | 园豆:10898 (专家六级) | 2011-05-25 11:42
aspx页面隐藏类继承ihttphandler类然后实现ProcessRequst方法吗
支持(0) 反对(0) caochao88 | 园豆:4 (初学一级) | 2011-05-25 15:45
System.Web.UI.Page他是继承这个类。。。
支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2011-05-25 16:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册