c# - Page_Load 上的断点如何不命中?

标签 c# asp.net .net-4.0

我在页面的 Page_Load 事件上设置了一个断点,该事件永远不会被触发。没有警告或消息表明断点可能永远不会被击中,即使页面加载成功它也永远不会被击中。

成功登录后,使用登录控件的 DestinationPageUrl 属性将用户重定向到此页面。如上所述,我可以登录并进入此页面,所以至少那部分是有效的。

如果我在登录页面的 Page_Load 事件上设置断点(这里只是普通的旧 ASP.NET 示例 Web 应用程序),断点将被命中。我可以进入代码,但 page_load 事件永远不会被击中,页面只会出现。在这个序列中,我逐步执行了 login.aspx 和 site.master 的 page_load 事件,但没有执行我真正想看到的 page_load。

有什么建议吗?谢谢!

最佳答案

为了执行 Page_Load,必须满足以下条件之一:

  • 您必须在 aspx 页面的 @Page 指令中设置 AutoEventWireup="true"。

  • 事件处理程序必须显式连接,通常在 OnInit 中

更新

正如@bzlm 的评论中所指出的,AutoEventWireup 的默认值为“true”,因此实际上如果页面指令中缺少 AutoEventWireup 属性,它也会被执行。

旧版本的 Visual Studio(当然是 2003,也许是 2005)用于 explicitly wireup events, and recommend to set AutoEventWireup to false .

据我所知,我认为这不再是真的。显式接线是通过以下行完成的:

this.Load += new System.EventHandler(this.Page_Load);

在由设计器生成并从 OnInit 方法调用的 InitializeComponent 方法中。

关于c# - Page_Load 上的断点如何不命中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5707487/

相关文章:

javascript - 计算 gridview 中选中的复选框

linq - 如何在 C++/CLI 中使用 LINQ - 在 VS 2010/.Net 4.0 中

WPF 内发光效果

c# - 如何使用WPF为DataGrid上的每个记录添加删除按钮?

c# - Substring() 用法混淆

c# - 标记中的服务器控件,但没有创建实例

c# - ASP.NET 数据库搜索

c# - 如何在不更改原始字符串的情况下创建和更改新字符串[][]?

c# - 注释斜杠//缩进太左(Rider)

c# - 将来自控制台的用户输入解析为 C# 中的命令行参数