如何在asp.net中执行另一个页面

时间:2012-05-09 14:05:22

标签: asp.net

我有一个页面,我需要多次从另一个页面调用。重要的是执行Page_Load方法。第一页有这段代码(第一页的名字是Call.aspx):

  Dim objWebClient As New WebClient
                        objWebClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)")
                        Dim objStream As Stream = objWebClient.OpenRead("D:\confirm.aspx")
                        Dim objSR As New System.IO.StreamReader(objStream)
                        objWebClient.Dispose()
                        objStream.Dispose()

这应该调用另一页。它不会执行其他页面。我有以下代码以确保执行确认页面:

 Dim objWrite As New System.IO.StreamWriter("c:\aa.txt")
        objWrite.WriteLine("Hello")
        objWrite.Close()

但没有输出。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

听起来您可能对HttpServerUtility.Execute()感兴趣。

答案 1 :(得分:0)

这是做什么的?:

objWebClient.OpenRead("D:\confirm.aspx")

D:\是否是对网址的引用?看起来你只是调用文件本身,这不会产生你想要的效果。 (忽略驻留在驱动器根目录中的文件......)

ASPX页面本身不可执行。 Web服务器(通常是IIS)必须处理它们的请求并通过.NET运行时等传递这些请求,以便处理服务器端处理。文件本身只是文本,它没有内部手段来解释服务器端代码。这就是Web服务器的用途。

要向Web资源(页面或任何其他Web资源)发出Web请求,您需要使用Web URL。类似于:http://localhost/confirm.aspx所以该页面需要由Web服务器在某处提供。

更重要的是不应该必须这样做。如果代码需要由两个页面共享,则应将该代码提取到共享组件中。 “页面”永远不应该“调用另一个页面”(除非它们位于完全独立的服务器上,并且您需要更多的SOA方法)。两个页面都应该调用一个共享组件(一个类,通常可以在自己的程序集中,也可以只在具有页面的Web项目中)。

业务逻辑不在页面中。只有UI进入页面。共享业务逻辑进入业务类。