Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在一个网页中查看两个单独的aspx文件吗?_C#_Asp.net - Fatal编程技术网

C# 我可以在一个网页中查看两个单独的aspx文件吗?

C# 我可以在一个网页中查看两个单独的aspx文件吗?,c#,asp.net,C#,Asp.net,我有一个问题,我有两个页面处理非常相似的事情,因此他们的很多方法和aspx服务器控件都有相同的方法名和变量。简言之,很明显,代码是复制/粘贴的,内部只是修改了。我有一个待处理的请求,要求合并这两个页面,因此我已经探索了一些选项,以确定如何最好地合并它们 首先,我想也许我可以把其中一个页面放在母版页中,这样就可以在母版页中放置内容,然后在母版页中放置代码/控件,但一旦我开始制定计划,这看起来是个坏主意。首先,相似的名称可能仍然是个问题;其次,将两个页面合并在一起似乎是一种相当笨拙的方式 我已经考虑

我有一个问题,我有两个页面处理非常相似的事情,因此他们的很多方法和aspx服务器控件都有相同的方法名和变量。简言之,很明显,代码是复制/粘贴的,内部只是修改了。我有一个待处理的请求,要求合并这两个页面,因此我已经探索了一些选项,以确定如何最好地合并它们

首先,我想也许我可以把其中一个页面放在母版页中,这样就可以在母版页中放置内容,然后在母版页中放置代码/控件,但一旦我开始制定计划,这看起来是个坏主意。首先,相似的名称可能仍然是个问题;其次,将两个页面合并在一起似乎是一种相当笨拙的方式

我已经考虑过重命名所有的方法和控件,但另一方面,重新命名代码和控件会花费很多时间。我担心的是,如果我试图更改有问题的方法名、控件、ID,我会在代码中引入很多bug


有没有更好的方法可以在一个网页中查看两个页面?

这就是所谓的
用户控制



阅读官方教程

您可以使用iFrames进行阅读。但是我认为网站可以更好地维护.net控件(.ascx文件),然后在新页面中调用它们

如果是ASP.net Web表单,您是否签出了,而不仅仅是一个页面

如果您有一个共同的主题或布局,这将出现在基本母版页中,那么嵌套母版页将公开下一组页面(您提到的层)之间的共同UI控件、事件处理程序等,最终的ASPX页面将公开不同于ASPX页面、UI控件、,每个独特页面的事件等


通过使用页面声明,您ASPX页面具有对一个或所有母版页的强类型引用,这将允许ASPX页面轻松访问公共母版页的方法和属性。

我认为有3个选项适合您: 1.将所有常用内容放在用户控件中,并在两个页面中使用它。这是最直接的解决方案,也是用户控件存在的主要原因——UI和代码的重用。这很可能是最好的选择。 2.拥有一个包含所有常用方法的实用程序类。此解决方案的缺点是您将只共享代码,而不共享UI。
3.您可以有一个从页面继承的BasePage,并且两个页面都从BasePage继承。同样,您将只共享代码,而不共享UI。当您希望为所有网页添加一些功能时,这通常是一个很好的解决方案。

谢谢,这个答案让我调查了用户控件,我可以看到它的许多用途。