问题标签 [page-lifecycle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - System.web.ui.page 的替代品
我有一个 ASP.Net 应用程序,通过使用分析器我注意到在我的页面运行之前发生了大量的处理。在我的应用程序中,我们没有使用 viewstate、asp.Net 会话,而且我们可能不需要使用 asp.net 页面生命周期所带来的大部分开销。是否有其他一些我可以轻松继承的类将删除所有 Asp.Net 内容,让我自己处理写入页面?
我听说 ASP.Net MVC 可以大大减少页面加载,仅仅是因为它不使用旧的 asp.net 生命周期,并且以不同的方式处理页面。有没有一种简单的方法,也许只是让我的网页继承一些其他类来利用这样的东西。如果可能的话,我想要一个适用于 ASP.Net 2.0 的解决方案。
asp.net - 如何从用户控件处理页面事件?(VB.net)
我想在我的用户控件生命周期的“预加载”阶段执行一些代码。但是 preload 事件仅在 Page 对象上可用。所以,我在我的用户控件中添加了以下方法:
但是,我知道会出现编译错误:“Handles 子句需要在包含类型或其基类型之一中定义的 WithEvents 变量”
由于 Page 属性是从 UserControl 继承的,我看不出这是如何轻松完成的。
任何帮助都感激不尽!
.net - 什么是 ASP.NET WebForm 的“页面生命周期”?
我希望对 ASP.NET 页面生命周期有更透彻的了解。我正在构建自定义表单控件,并且发现我在这方面的知识缺乏。
asp.net - QueryString 的最佳选择是什么
我们听说了很多关于使用 QueryStrings 的漏洞和可能的攻击。除此之外,昨天,一个错误让我非常恼火,以至于我决定停止使用 QueryStrings,我传递了类似的东西:
我试过了
在重定向页面中,它将“类型”打印为 3,然后我在目标页面中尝试了它,它打印了 3,0....我知道这很容易处理,但为什么呢?我的意思是为什么我应该通过 3 并且必须在下一页的加载中检查 3.0 以相应地采取我的行动???
那么我们应该使用什么呢?将变量、参数...等传递到下一页的最安全方法是什么?
asp.net - 使用 ViewState 的 Asp.net BasePage 属性在回发时被清除
以下是我的设置的基础知识:
我有一个继承自 System.Web.UI.Page 的 BasePage 类。BasePage 实现了两个属性,以便它们的 get/set 从 ViewState 集合中的两个不同项目(例如来自 BasePage 的 this.ViewState["Year"])中执行。
我有另一个类,然后从 BasePage 继承,我们称之为 SpecificBasePage。
最后,我有一个继承SpecificBasePage 的aspx 页面。
我已经添加了断点并在我的代码中做了很多单步调试,发现在初始页面加载时,我的两个视图状态属性都被分配了值,并且这些值在第一个页面加载生命周期中持续存在。
但是,当页面回发时,在 Page_Load 事件和其他事件处理程序期间(应加载 ViewState 时),这两个属性都返回 null。检查 this.ViewState.Count 显示集合中有零个对象。
谁能想到我在某处可能会影响 ViewState 并导致这种行为的事情?
--另外我已经把它隔离到我的一部分代码中。在初始加载时,我在 OnInit 中给出了 viewstate 属性值,我发现当我将其移至 OnLoad 时,这些值在回帖中仍然存在。我猜即使添加的视图状态值在整个初始页面生命周期中都存在,但它们在回发中被放弃了?
c# - 页面退出时执行操作
我有一个 ASP.NET(2.0 C#) Web 应用程序,我想知道一旦用户移动到另一个页面或离开应用程序时如何执行操作。
当用户进入页面时,是否有类似的方法page_load
,除了这个用于退出页面?
谢谢
.net - Asp.net“全局”变量
我正在 ASP.NET 中编写一个页面,并且在回发初始化周期之后遇到问题:
我有(类似于)以下内容:
发生的事情是我的代码很好地拾取了“passedString”,但由于某种原因,在回发时,它重置为默认值 - 即使我将默认值的分配放在 Page_Init 代码中......这让我想知道怎么回事。。
有什么帮助吗?
c# - ASP.net 页面中的 WCF 客户端
任何人都可以建议从 ASP.net 页面使用 WCF 服务的良好模式吗?似乎如果 Client(:ServiceModel.ClientBase) 的生命周期没有得到适当的控制,我们就会抛出 PipeException。它目前作为 Page 类的一个字段存在,但在每个页面请求时都被重新实例化,而不被清理(.Close 方法)。
我怀疑这个问题可以改写为“管理 ASP.net 页面中的有限资源”,并且可能与 ASP.net 页面的生命周期更相关。我是 ASP.net 的新手,所以我对此的理解有点薄。
TIA。
编辑:一些代码(没什么大不了的!)
第二次编辑:以下会更好吗?
.net - 事件在 .NET 页面周期中没有足够早地触发
我有一个页面(表单),上面有很多用户控件,我试图用一个按钮来保存所有内容。UserControls 实际上是嵌套的,所以我想以某种方式向每个 UC 发出信号,告知它应该保存自己,而不是以某种方式将所有内容包装到一个事件中或让单个事件触发一连串的保存事件。
我的计划是使用一个静态类(这个答案的代码的道具):
理想情况下,我的 MasterPage 上的按钮将设置 RequestScopedFormData.FormIsSaving = true,并且当 .NET 构建页面及其用户控件时,他们会知道自己执行保存。
我遇到的问题是我无法在页面生命周期中足够早地触发事件以保存用户控件。即使我将保存代码移动到 PreRender 事件,并将保存 ImageButton 移动到页面本身(而不是 MasterPage),我也无法在 UC 保存检查之前将 FormIsSaving 设置为 true。
它发生这样的事情:
- 页面 Page_Load
- MasterPage Page_Load
- UC Page_Loads 和 PreRenders(它们是混合的,它会在加载其他之前预渲染一些)
- MasterPage SaveButton_Click 事件(这是我设置类变量的地方)
- MasterPage 预渲染
- 页面预渲染
所以不幸的是,SaveButton_Click 方法发生在加载 UC 之后,所以它们永远不会保存。
asp.net - ASP.NET 2.0 PageComplete 事件问题和文件下载
我试图在整个 .aspx 页面显示后执行操作。“action”是一个使用 Response 对象向用户发送文件的函数。
更多详细信息:
我正在尝试从侧边栏复制页面上链接的行为。IE 我在主页上有一个导出操作的链接,它工作正常——因为该页面在用户单击它之前已经显示。但是当用户在侧边栏上单击链接时,它应该将他们带回此主页,然后在文件显示后发送文件。
我做了一些研究,并认为使用 PageComplete 事件非常适合这个,所以我创建了我的事件处理程序并将调用放在我的 PageComplete 中的导出代码(从侧边栏加载时它关闭查询字符串)事件处理程序。但它的行为方式相同 - 弹出浏览器下载框,并且该页面从未在之前或之后加载。
如果有助于理解我在这里所做的是用于将列表发送给用户的代码片段。
我更喜欢一种使用页面事件来加载页面的方法,而不是修补这个逻辑。但是,如果有一种干净且更简单的方法来发送文件,并且它允许加载页面然后发送文件,那也很好。
除了 PageComplete 之外,我还可以使用另一个 Page 事件,还是我可能遗漏了什么?
编辑:对冗长感到抱歉。我意识到我无法改变 HTTP 请求的工作方式——我只是在寻找一种可接受的解决方案,它可以实现或多或少相同的结果。似乎要走的路是在几秒钟后强制刷新页面(从而确保在执行文件下载代码之前加载它)——所以我正在寻找一种方法来作为第一个答案建议 - 刷新下载。(也不必延迟,如果有无需等待即可刷新的方法)
为什么这段代码不起作用?
它应该做什么:页面加载完成后,执行 Response.Redirect,使用不同的查询字符串重新加载自身。当它再次到达Page LoadComplete 事件时,第二次将触发写出文件的函数。
它实际上做了什么:显然重复了两次同样的问题......它又回到了同样的问题,页面加载后如何执行操作,或者等到页面完全加载完成,然后触发刷新,将执行行动?没有用户单击某些东西,ASP.NET 就没有办法自己做某事吗?
如果是这种情况,那么 2 秒后的自动刷新也是可以接受的……但我不知道该怎么做。