对多个.aspx页面使用相同的代码隐藏文件

时间:2011-08-13 06:09:18

标签: c# .net asp.net

我们正在CMS内部开发一个网站,将文件推送到我们的生产服务器。如果创建的.apsx页面共享文件后面的相同代码,这会导致问题吗?

3 个答案:

答案 0 :(得分:9)

为什么不让两个页面都从同一个类继承?

public class MyPage : System.Web.UI.Page
{
   // common logic that both pages should have

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

public partial class PageA : MyPage
{
   // specific logic for page A
}

public partial class PageB : MyPage
{
   // specific logic for page B
}

答案 1 :(得分:3)

Yes。这在技术上是可行的,但它不是一种使用ASP.NET的支持方式,并且可能会遇到很多困难。

您应该使用User ControlsAppCode代替。

答案 2 :(得分:2)

我建议避免这样的设计,因此每个页面都应该有自己的代码隐藏文件。 另请参阅以下ASP.NET功能,这些功能可以简化网页上共享布局和行为的共享:

  • Master pages(。master),基本上多个具有相同布局的页面可以使用共享母版页,它提供公共布局和支持逻辑的代码。此外 - 您可以在运行时切换母版页,母版页可以嵌套,因此母版页可以放在另一个母版页内,这使您可以自由灵活地设计Web应用程序布局和单独的职责。
  • User Controls(。ascx),值得通过一组控件来分隔关注点和拆分页面,例如,它可能是LoginControl.ascx,AdControl.ascx,SearhcControl.ascx,所以你保持一个页面代码清理,每个控件都提供特定的功能和自己的布局。
  • 继承,所以基本上一组页面具有从Page类继承的相同基类(我不建议大量使用这种方法,一个基页就足够了)

    您可以使用其他常见的开发技术(例如依赖注入)来跨多个页面共享代码,这取决于特定的案例和业务目标,这些都是在幕后考虑的。