2012-07-25 25 views
0

我有三個不同的.aspx頁面(abc1.aspx,abc2.aspx,abc3.aspx)。現在我想在其中三個函數中調用一個函數func()。我只想定義一個函數的定義,並在3個不同的頁面上調用它。如何在asp.net(C#)中的多個頁面中調用一個函數?

+1

定義一個單獨的類,其中包含函數,每個aspx代碼都在創建對象後面o f該類並調用函數 – Habib 2012-07-25 18:35:22

回答

2

創建從System.Web.UI.Page繼承的基類。在那裏定義你的功能。然後在這些aspx頁面中繼承此基本頁面而不是System.Web.UI.Page。在此之後,你可以從任何這些頁面中調用該函數,像這樣:base.MyFunct()

BasePage.cs

public abstract class BasePage : System.Web.UI.Page 
{ 
    protected void MyFunct() 
    { 
    } 
} 

Page1.aspx.cs,Page2.aspx.cs,Page3.aspx.cs

public partial class Page1 : BasePage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     base.MyFunct(); 
    } 
} 

public partial class Page2 : BasePage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     base.MyFunct(); 
    } 
} 

public partial class Page3 : BasePage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     base.MyFunct(); 
    } 
} 
+1

我會補充說基類應該是抽象的。 – Johnny5 2012-07-25 18:38:44

+1

誰低估請解釋 – Dimitri 2012-07-25 18:40:00

+0

+1這是一個更好的解決方案。 – Shyju 2012-07-25 18:41:39

2

將.cs或.vb類文件添加到您的網站appCode文件夾中。 定義的函數的代碼文件 例如:

Class myFunctions 
{ 
     public static int Sum(int a,int b) 
     { 
      return a+b; 
     } 
} 

現在在你的ASPX代碼背後的創建這個類的一個對象,並使用功能

int result = myFunctions.Sum(5,6); 
+0

該方法應該是靜態的,因爲您沒有在實例上使用任何狀態。 – Servy 2012-07-25 18:40:23

+1

@Servy。抱歉,我無法理解你所說的話。我創造了這個類的對象?我沒有直接訪問該函數。對於靜態函數,我可以通過類名myFunctions.Sum訪問它。我是對的 – 2012-07-25 18:46:22

+1

你的代碼肯定會工作,但是你正在創建一個沒有字段的類的實例。該功能不需要狀態;其輸出完全依賴於它的輸入。這樣的功能*應該是靜態的。當它沒有爲你做任何事情時,你將避免創建一個新的對象(即使沒有任何狀態也有一堆標題信息)。 – Servy 2012-07-25 18:56:16

0

創建一個公共類(可選地,靜態)和將該方法作爲公共靜態方法添加到該類中:

public class Utilities 
{ 
    public static string DoStuff() 
    { 
    return "hello world"; 
    } 
} 
+0

我嘗試使用你的方法,但沒有得到成功。我在'abc1.aspx'中創建了一個公共類。但是,我無法在'abc2.aspx'中使用它。 – Sagar 2012-07-25 20:06:06

+0

@Viktor這些類可能在不同的命名空間中。不要將該類添加到其中一個aspx文件中,只需將該類添加到項目中作爲它自己的文件(以遵循標準約定)即可。確保每個aspx文件都爲該類所在的任何名稱空間添加'using'語句。也可以將這個內部類作爲您的頁面的內部類,這是您不需要的。如果你這樣做了,那也可以通過將它移動到它自己的文件來解決。 – Servy 2012-07-25 20:07:27

相關問題