0

Ajax 呼び出しを介して QueryString と共に aspx ページにリダイレクトしようとしましたが、ハンドラーが呼び出されてもリダイレクトは行われません。

public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/plain";
    string searchValue = context.Request["txtBoxValue"].ToString();
    context.Response.Redirect("SearchResults.aspx?search=" + searchValue);

}

 $.ajax({
url: 'Handlers/SearchContent.ashx',
data: { 'txtBoxValue': txtBoxValue },
success: function (data) {
}

});

転送が行われない理由とその方法についてのアドバイス

敬具

4

1 に答える 1

2

明らかに ajax リクエストを行っているため、リダイレクトは効果がないはずです。success代わりに、ハンドラーでクライアント側から行う必要があります。

public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/plain";
    string searchValue = context.Request["txtBoxValue"].ToString();
    //Return the redirect URL instead
    context.Response.Write("SearchResults.aspx?search=" + searchValue);     
}



$.ajax({
    url: 'Handlers/SearchContent.ashx',
     data: { 'txtBoxValue': txtBoxValue },
      success: function (data) {
         window.location= data;//redirect here. "data" has the full URL
    }
});

これが ashx ハンドラーで行っていることのすべてである場合、ajax 要求の必要性は実際にはわかりません。

于 2013-07-25T19:32:36.077 に答える