2012-07-25 24 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

相关问题