我有一个问题,我有两个页面处理非常相似的事情,因此他们的一些方法和aspx服务器控件具有相同的方法名称和变量。简而言之,很明显代码是复制/粘贴的,内部只是被改变了。我有一个待合并的请求要合并两个页面,所以我已经探讨了如何最好地合并它们的一些选项。
首先,我想也许我可以将其中一个页面放在一个允许内容占位符的页面中,然后我会放置代码/控件,但是一旦我开始制作它看起来是一个坏主意计划。对于一个类似的名称可能仍然是一个问题,其次,将两个页面合并在一起似乎是一种相当笨重的方式。
我考虑过重命名所有方法和控件,但另一方面,它需要花费大量时间来挑选代码和控件来重命名它们。我担心的是,如果我尝试更改有问题的方法名称,控件,ID,我会在代码中引入很多错误。
有没有更好的方法在一个网页中查看两个页面?
答案 0 :(得分:4)
您可以使用iFrame进行此操作。但我认为网站可以更好地维护.net控件(.ascx文件),然后在新页面中调用它们
答案 1 :(得分:2)
这个东西叫做user control
。
UserControl class
阅读this官方教程
答案 2 :(得分:1)
我认为可以有3个选项适合您: 1.将所有常见内容放在用户控件中,并在两个页面中使用它。这是最直接的解决方案,这是用户控制存在的主要原因 - 重用UI和代码。这很可能是最好的选择。 2.有一个包含所有常用方法的实用程序类。此解决方案的缺点是您只会共享代码,而不是UI。 3.您可以拥有一个继承自Page的BasePage,并使这两个页面都继承自BasePage。同样,您将只共享代码,而不是UI。当您想为所有网页添加一些功能时,这通常是一个很好的解决方案。
答案 3 :(得分:0)
如果是ASP.Net Web Forms,你有没有签出Nested Master Pages,而不仅仅是一个MastPage?
如果你有一个共同的主题或布局,这将在 Base MasterPage中,你的嵌套 MasterPage然后公开常见的UI控件,事件处理程序等在下一个之间通用一组页面(您引用的图层),您的最终ASPX页面然后公开每个唯一页面的ASPX页面,UI控件,事件等之间不同的单个页面功能。
通过使用@ MasterType页面声明,ASPX页面具有对一个或所有MasterPages的强类型引用,这将允许ASPX页面轻松访问公共MasterPage的方法和属性。