【问题标题】:Is there an equivalent to "partial class" for aspx pages?aspx 页面是否有相当于“部分类”的内容?
【发布时间】:2013-01-17 06:01:30
【问题描述】:

我有一个非常非常长的页面,为了使 html 更易于阅读,我想将页面分成几个子页面。

为了管理页面上的控件,我已经将代码隐藏页面拆分为多个文件。

我想对我的 aspx 做同样的事情。我将如何调用这些子页面以及如何启动它们? (比如,没有 )。

到目前为止,我用空的 aspx 页面尝试了<!-- #Include virtual="~/path/page.aspx" -->(只有 aspx 中的“测试”。没有后面的代码)。

它可以工作,但是,VS2010 给我抛出了一堆错误(字符文字中的字符太多。

编辑

我宁愿避免使用用户控件:

我已经用过很多了。在这种情况下,不需要可重用性。这些控件也主要只包含其他用户控件。而且我不想与我所有其他页面(更短)的布局有太多不同。大多数页面上有 3-4 个控件,但这个有 50 个。我只想将其拆分为多个 html 页面。

【问题讨论】:

  • 虽然技术上有所不同,但听起来“用户控件”适合您。
  • 解决您的编辑问题;您不打算重复使用它的事实并不意味着它作为用户控件没有意义。创建一个您只使用一次的用户控件根本不是一个坏主意,这只是将页面的单独部分拉出到更小的逻辑组件中的一种方式。这样做的原因是,如果该模块与页面的其他方面之间的耦合非常紧密,以至于没有有效的方法将它们分开。
  • 你想做什么?提高加载时间?你的页面主要是展示信息还是收集用户输入?
  • 简单地将代码拆分到不同的文件中。而且主要是收集用户输入。

标签: c# asp.net include


【解决方案1】:

我已经接近答案了。似乎 VS2010 在 html 上抛出的错误在构建项目后消失了。尽管如此,我还是为我的子页面保留了代码隐藏文件,尽管 VS 对所有文件都感到困惑。

这就是我最终拆分页面的方式:

父 aspx 文件:

<!-- #Include virtual="~/Page/subPage.aspx" -->

父 aspx.cs 文件:

public partial class myPage 

子页面aspx文件:

纯 html(没有 @Page、@Imports 等)、用户控件...

<div style="margin:20px 0px;">
    <asp:Panel runat="server" ID="table" />
</div>

<CUSTOMCTRL runat="server" />

子页面 aspx.cs 文件:

公共部分类myPage

子页面 aspx.designers.cs 文件:

公共部分类myPage

唯一的问题是子页面设计者:您需要手动管理它们。

【讨论】:

    猜你喜欢
    • 2016-02-10
    • 1970-01-01
    • 2010-11-12
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多