2011-05-24 181 views
0

我無法在所有網頁中找到重用以下代碼的方法。如何重用此C#代碼?

我該怎麼辦?

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 

     if (Page.Request.UrlReferrer == null) 
     { 
      Response.Redirect("test.aspx"); 
     } 
    } 
} 

我倒是喜歡用這樣的:

protected void Page_Load(object sender, EventArgs e) 
{ 
    CheckURL(); 
} 

請給我一個例子! :)我新使用C#!

回答

4

只需創建一個所有其他頁面繼承的基本頁面。把你的代碼放在基本頁面中。

所以public class CurrentPage : BasePage(繼承)

然後

public abstract class BasePage : System.Web.Ui.Page

+1

對System.Web.UI.Page類的擴展方法將工作,以及添加此。 – 2011-05-24 19:43:54

+0

正是我們所做的。如果你喜歡,你可以在web.config中爲你的新基頁設置 n8wrl 2011-05-24 19:43:56

2

您可以創建一個從System.Web.UI.Page繼承一個新的類,並添加此邏輯的存在,然後使用新類的所有網頁。

編輯:

像這樣

public class MyPage : System.Web.UI.Page 
    { 
     public MyPage() 
     { 
      Load += MyPage_Load; 
     } 

     void MyPage_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 

       if (Page.Request.UrlReferrer == null) 
       { 
        Response.Redirect("test.aspx"); 
       } 
      } 
     } 
    } 

,並在web.config中

<system.web> 
    <!-- ... --> 
    <pages pageBaseType="MyNamespace.MyPage" /> 
    <!-- ... --> 
</system.web> 
+0

我是新的使用C#..代碼如何? – 2011-05-24 19:44:05