2017-03-24 73 views
0

我想在一个地方访问所有.aspx页面的page_load事件。在一个位置访问所有.aspx页面的Page_Load事件

情景: -

我在的WebForms(不MVC)的asp.net网站。它有70-75 .aspx页面。 现在我想要执行一些相同的业务逻辑page_load事件的所有页面。

我的问题: -

现在,我怎么能在一个地方访问所有75个.aspx页面page_load所以每当form1.aspxform2.aspxform58.aspx当时我想打电话给我的通用功能的用户请求。

我试过,直到: -

为了实现上面的场景我用Application_BeginRequest事件Global.asax文件,该文件将被调用为每个请求。 但现在问题是,这Application_BeginRequest也呼吁button_click,在ajax call我不想。我只想在page_load事件发生时致电我的通用功能

是否有任何其他方式使用httpmodulehttphandler实现上述方案 - 如果是,请帮助我。

感谢,

物理调用常用函数在每一个每一个page_load是坏主意。我想在平常的地方。

回答

0

你也许可以这样来做:

1. create a separate class file Common_Page_Load.cs 

2. Write your logic inside that class file Common_Page_Load.cs 

3. Call that class file in every page_load function: 
    form1.aspx or form2.aspx or form58.aspx. 

4. If that needs to be conditional, 
    then create a Session variable and you might use it accordingly. 

例如:

class Common_Page_Load { // separate .cs file 

    public bool some_logic() { 
    ... 
    if(...){ 
     return true;} 
    else{ 
     return false;} 
    } 
} 

Page_Load(...) { //page load of form 1 or form 2 or form 50 or so 

    if(Session["check_logic"] == "true"){ 
     Common_Page_Load CP = new CP(); 
     bool myvar = CP.some_logic(); 
     ... 
     ... 
    } 

} 

希望它有帮助。

+0

这不是解决方案......您必须在每个70-75 .aspx页面中调用该函数...... - 查看我的问题 - 我想要中心位置 – prog1011