gpt4 book ai didi

c# - 如何在 ASP.NET 中打开从 Iframe 重定向的页面以在父窗口中打开?

转载 作者:太空狗 更新时间:2023-10-30 00:12:27 49 4
gpt4 key购买 nike

我有一个 asp.net 页面,其中包含一个嵌入了一些数据的 Iframe 和一个 ImageButton。在 ImageButton 单击事件(服务器端)我有 Response.Redirct:

Response.Redirect("results.aspx");

这总是在 iframe 中打开 results.aspx。我希望 results.aspx 应该始终在父窗口中打开。到目前为止,我尝试了以下方法,但均无效:

Response.Redirect("<script language='javascript'>self.parent.location='results.aspx';</script>");
Response.Redirect("javascript:parent.change_parent_url('results.aspx');");

根据 Rifk 的回复,我添加了 ClientScriptManager。.aspx 有这个条目:

<asp:ImageButton ID="ImageButton_ok" ImageUrl="~/images/ok.gif"
OnClick="btnVerify_Click" OnClientClick="ValidateFields()"
runat="server" />

Page_Load() 中的代码:

ClientScriptManager cs = Page.ClientScript;
StringBuilder myscript = new StringBuilder();
myscript.Append("<script type=\"text/javascript\"> function ValidateFields() {");
myscript.Append("self.parent.location='default.aspx';} </");
myscript.Append("script>");
cs.RegisterClientScriptBlock(this.GetType(), "ButtonClickScript", myscript.ToString());

btnVerify_Click 有主要的业务逻辑。如果我的业务逻辑失败,我将如何阻止 OnClientClick() 触发?或者,如何在成功执行服务器端代码时触发?

最佳答案

Response.Redirect 只会影响 iFrame 中的页面,前提是该页面是在服务器端执行重定向的页面。您想在该 iFrame 中运行一些 javascript 来重定向父级,就像您在第二个示例中所做的那样。为了运行脚本,您不应该使用 Response.Redirect(),而应该注册客户端脚本。

请参阅以下链接了解如何在 ASP.Net 2.0 的代码中注册客户端脚本 - Using Javascript with ASP.Net 2.0

例如,您可以在处理 ImageButton Click 的事件末尾添加类似的内容:

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myUniqueKey",
"self.parent.location='results.aspx';", true);

关于c# - 如何在 ASP.NET 中打开从 Iframe 重定向的页面以在父窗口中打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018975/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com