- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的 Session_Start
看起来像这样的代码:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
Dim sid = Session.SessionID
Response.Redirect("~/Blog.aspx")
dim dummy=4/0
End Sub
Response.Redirect()
被调用,它也终止代码执行。而在这里,即使页面最终重定向,
dim dummy=4/0
行也被执行。
Session_Start()
调用的其他代码中出现问题我的假设是重定向是一个导出点。
endResponse
在
Response.Redirect(url, endResponse)
重载方法为
true
或
false
但这也不起作用。
最佳答案
深入研究框架源代码后,我可以解释为什么 Response.Redirect(url, true)
在Session_Start()
中被调用后继续执行代码但不是在后面的常规代码中。Response.Redirect()
最终调用Redirect()
的内部重载方法:
internal void Redirect(string url, bool endResponse, bool permanent)
{
// Miscellaneous goings on
if (endResponse)
{
this.End();
}
}
endResponse
那么为真
Response.End()
叫做。当我们看
Response.End()
我们看到以下代码:
public void End()
{
if (this._context.IsInCancellablePeriod)
{
InternalSecurityPermissions.ControlThread.Assert();
Thread.CurrentThread.Abort(new HttpApplication.CancelModuleException(false));
}
else if (!this._flushing)
{
this.Flush();
this._ended = true;
if (this._context.ApplicationInstance != null)
{
this._context.ApplicationInstance.CompleteRequest();
}
}
}
IsInCancellablePeriod
值(value)。这个值是内部的,但我们可以在调试器中看到它:
Session_Start()
里面设置一个断点并检查当前上下文的
IsInCancellablePeriod
我们看到的不可见成员:
Response.Redirect()
之后的代码无论您是否设置
endResponse
都会执行或不。
Page_Load()
中设置断点事件我们看到了不同的东西:
IsInCancellablePeriod
不可见成员设置为 true 等
Thread.CurrentThread.Abort()
将被调用并且在
Response.Redirect()
之后不再执行任何代码.
Don't redirect after setting a Session variable (or do it right)
Response.Redirect()
之后执行在
Session_Start()
那么你需要使用
If...Then...Else
:
If <some_condition_we_have_to_redirect_for> Then
Response.Redirect("~/Blog.aspx")
Else
// Normal session start code goes here
End If
关于asp.net - Session_Start 中的 Response.Redirect 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6029826/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!