私は以下を実行しようとしています: - ハンドラで関数JQueryを呼び出します。 - 処理が完了したら、ページにリダイレクトします。context.Response.Redirect from handlerは動作しません
問題は、ページが読み込まれていない可能性があります。
私は明確にするために次のコードを作成しました。
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication3._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript" src="js/jquery-ui.js"></script>
<script type="text/javascript" src="js/jquery.js""></script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<script type="text/javascript" language="javascript">
function CallHandler() {
console.info("Entering CallHandler");
$.ajax({
type: 'POST',
url: "Handlers/MyFunction.ashx",
data: { helloworld: 'hello world'},
success: function (data) {
console.info(data);
}
});
}
</script>
<asp:HyperLink runat="server" ID="linkForTest" onclick='CallHandler();' Text='Click Me' />
</asp:Content>
と私のハンドラは、次のようなものです:
/// <summary>
/// Summary description for MyFunction
/// </summary>
public class MyFunction : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write(context.Request["HelloWorld"]);
context.Response.Redirect("~/Login/WebForm1.aspx");
}
public bool IsReusable
{
get
{
return false;
}
}
}
それは、 "ログイン/ WebForm1.aspxの" 私のページを呼ばなければならないが、それは何を呼び出しません。 しかし、Firebugは問題を見つけられないようです...ちょうどページを読み込もうとしています...そして失敗しました。
アイデア?
ループします。 request.Urlは正しいです。同僚は、問題はハンドラからのページのリダイレクトを行うことを試みているという事実から来ており、コールページからではないと私に言った。 – PetersLast
リダイレクト先のページに既にある場合は、リダイレクトif(!request.Url.EndsWith( "Login/WebForm1.aspx"))を呼び出さないでください。context.Response.Redirect( "〜/ Login /WebForm1.aspx "); –
私はこのページにいません。私は実際にページにいます: "〜/ Default/Default.aspx"と "〜/ Login/Login.aspx"に行きたいです。 – PetersLast