从App_Code中的类调用aspx类

时间:2014-02-20 17:59:50

标签: c# asp.net class webforms app-code

我知道可以在我的Web-Form类的App_Code文件夹中使用一个类。 但是,是否可以从App_Code中的类调用我的Web-Form类?

如何?

感谢

1 个答案:

答案 0 :(得分:1)

请记住:在网络上工作时,一切都在请求/响应的上下文中发生。您要做的是为App_Code中需要查看您的webform的任何方法提供该上下文。这些方法需要额外的HttpContext参数,如下所示:

public void AppCodeMethod(HttpContext currentContext)

这样,您就可以访问上下文的RequestResponse属性。你也可以让这些方法接受一个webform类的实例,但通常当我看到它时,这表明对webforms的工作方式缺乏了解,并且放弃了这种方法后找到了更好的解决方案。

你应该做的一件事就是在App_Code中有一个依赖于持久状态的类。这些类应该没有您期望在单个事件触发时保持值的字段或属性。在ASP.Net中,在您处理的每个事件之间重置容纳您的类的整个线程。这一点很重要:每次处理事件时,都会创建一个全新的表单类实例,再次运行page_load方法,最后运行事件代码,然后销毁表单类(和整个线程)(或重置以准备处理来自完全不同的用户的请求)。 Web窗体试图创建一个抽象来使http层看起来像一个持久的页面,但这种抽象漏掉了所有地方。

因此,App_Code类的最佳用途通常是为多个页面共享的实用程序方法保留它们,但仍然只依赖于来自单个http请求的信息。