为每个 Page_Load 运行代码

发布于 2024-10-24 06:49:20 字数 99 浏览 4 评论 0原文

我需要对 ASP.NET 应用程序中的每个加载页面进行 HTML 代码操作。放置我的方法的最佳位置在哪里?将代码放入每个网页的 Page_Load 事件中不是很聪明,还有什么其他选择?

I need to do HTML code manipulation for every loaded page in my ASP.NET application. Where is the best place to put my method? Put code into every web page Page_Load event in not very smart, what other alternatives?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

你没皮卡萌 2024-10-31 06:49:20

如果我的理解正确,那么逻辑上您需要在 Page_Load 中发生一些事情,但您希望避免在每种情况下重复该代码的明显问题。

我将为项目定义一个页面库(这样做还有其他优点),所有页面代码隐藏都继承自该页面库,并且该页面库本身也继承自 System.Web.UI.Page。然后,让它在 Page_Load 之前或之后根据需要完成所需的工作。

或者,也可以在过滤器中完成您所说的 HTML 操作工作。

If I get you right, you've something which logically needs to happen in Page_Load, but you want to avoid the obvious issues with duplicating that code in each case.

I would define a page base for the project (there are other advantages in doing so too), that all page code-behinds inherit from, and which itself inherits from System.Web.UI.Page. Then, have it do the required work before or after the Page_Load as appropriate.

Alternatively, it may be possible to do the HTML manipulation work you talk of in a filter.

沧笙踏歌 2024-10-31 06:49:20

考虑使用自定义 HttpModule

http://msdn.microsoft.com/en-us/library /ms227673.aspx

或在 Global.asax 中,您可以在 Application_PreRequestHandlerExecute 中挂钩所需的事件:

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;

            if (context.Handler is Page)
            {
                Page page = (Page)context.Handler;
                page.Load += ...
            }
        }
    }

consider using custom HttpModule

http://msdn.microsoft.com/en-us/library/ms227673.aspx

or in Global.asax you can hook up desired event in Application_PreRequestHandlerExecute:

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;

            if (context.Handler is Page)
            {
                Page page = (Page)context.Handler;
                page.Load += ...
            }
        }
    }
流绪微梦 2024-10-31 06:49:20

创建一个继承 System.Web.UI.Page 的新基类,然后在每个代码隐藏页面中,将它们更新为从这个新基类继承,而不是 System.Web.UI.Page。

在这个新的基类中,您可以粘贴可以从所有页面上的 Page_Load 调用的方法。

Create a new base class which inherits System.Web.UI.Page, then in each of your code behind pages, update them to inherit from this new base class rather than System.Web.UI.Page.

In this new base class you can stick the method which you can call from the Page_Load on all of your pages.

狂之美人 2024-10-31 06:49:20

我会编写一次 JavaScript 函数并将其导入到每个页面中。

I'd write a JavaScript function once and import it into every page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文