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页面,列出了当前所有的类别,点击每一行的编辑链接时,弹出jQueryUI的dialog供用户修改该类别信息,修改完后点击确定用jQuery Ajax提交到该一般处理程序中更新数据库,更新完成后重定向到类别管理页完成刷新 。
jquery ajax 做数据传输而已吧,跳转的话还是在完成状态后用Js跳转吧。
如果你是同步访问ashx文件的话,应该是可以跳转的,现在你是异步访问,异步访问不能改变页面的,只是单纯的数据传输
试试这个js
window.parent.self.location.href=''
悲剧哥
一般处理程序啊,这个我想是为那些喜欢ajax的人弄的,这个时候用的只是客户端脚本,服务器端管不到他。
如果你是aspx页面去请求这个一般处理程序,为什么不直接请求aspx的后台?