弹出窗口上的 Response.redirect 转到主页
当我选择父窗口上的链接时,我会打开一个弹出页面。 如果弹出窗口的页面加载处理程序中发生一些异常,则错误应该转到父窗口,而不是弹出页面。 如果弹出页面没有发生异常,则只会加载弹出页面的内容。
一个 Asp 页面发出错误消息。
弹出页面的catch块中的代码:
catch(Exception ex)
{
Response.Redirect("");
Response.End();
}
I have a pop up page that opens when I select a link on the parent window. If some exception occurs in page loaded handler of the pop up, then the error should go to parent window, not the pop up page. If an exception does not occur in the pop up page, it will load the pop up only with the contents.
An error message is coming from one Asp page.
The code in the catch block of popup page:
catch(Exception ex)
{
Response.Redirect("");
Response.End();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您正在处理 catch 块中的错误,您可以做什么 - 声明一个 javascript 变量并在该变量中设置错误文本。
如果发生错误,您可以在
catch
块中执行此操作 -上面的代码将做什么 - 设置错误描述,并在 aspx 页面上调用
CloseWindow()
函数。 该函数将包含以下代码行 -该函数将调用父窗口的函数并自行关闭。
SetError()
函数可以以您喜欢的任何方式显示错误。If you are handling the error in the catch block, what you can do - declare a javascript variable and set the error text in that variable.
If error occurs, you do this in the
catch
block -What the above code will do - set the error description, and call the
CloseWindow()
function on your aspx page. The function will contain the following lines of code -This function will call the parent window's function and close itself. The
SetError()
function can display the error in whatever fashion you like.您不能使用 Response.Redirect 来决定页面的加载位置。 这是在请求发送到服务器之前决定的,因此当服务器代码开始运行时,已经来不及更改页面的位置了。
如果您想关闭弹出窗口并在父窗口中加载页面,则必须向弹出窗口编写 Javascript 代码来执行此操作。
例子:
You can't use
Response.Redirect
to decide where the page will be loaded. That is decided before the request is sent to the server, so when the server code starts to run it's already too late to change where the page will go.If you want to close the popup and load a page in the parent window instead, you have to write Javascript code to the popup that does that.
Example:
我认为使用 javascript 弹出窗口并通过 AJAX 执行请求而不是使用新窗口和完整页面请求周期会是更好的用户体验。 在 JavaScript 中执行此操作使您能够将所有交互保留在同一页面上,并且可以轻松地在“主”界面中获取错误消息。 在许多其他方法中,您可以使用 jQuery 来提供 AJAX 界面和 dialog 插件来管理模式对话框。
I think it would be a better user experience to use a javascript popup and do the request via AJAX rather than use a new window and a full page request cycle. Doing it in javascript gives you the ability to keep all the interaction on the same page and would make it trivial to get your error message in the "main" interface. Among many other ways to do this you could use jQuery to provide both the AJAX interface and the dialog plugin to manage the modal dialog.