当我使用ASP.NET时,我发现总会遇到意想不到的事情需要永远调试.我认为拥有这些的综合列表对于那些"奇怪的错误"情况来说是很好的,并且还可以扩展我们对平台奇怪性的了解.
所以:回答一下你的"Gotcha"!
我将开始:在ASP.NET(VB)下,在try/catch块中执行Response.Redirect不会停止执行当前的Response,这可能导致针对同一Session执行两个并发响应.
不要在页面初始化事件之后动态添加控件,因为它会搞砸视图状态树.
Viewstate ...如果您正在使用它......如果您不注意它,可能会失控.
整个生命周期的事情一般.
并不是说我看到它有什么问题,只是你会惊讶于在理解它之前开始从事大型ASP.Net项目的人数,而不是相反.因此,它变成了一个陷阱.
请注意,我说大型项目:我认为与生命周期达成协议的最佳方式是首先自己处理一些较小的项目,如果你搞砸它们并不重要.
自定义控件的生命周期与同名的页面生命周期事件不完全匹配.
Page_Load在控制处理程序之前运行.因此,您无法在事件处理程序中进行更改,然后在页面加载中使用这些更改.当您在母版页(例如登录控件)中拥有控件时,这将成为一个问题.您可以通过重定向解决问题,但这绝对是一个问题.