10

告诉我 global.asax 和 global.asax.cs 之间的区别?

如果我在我的解决方案资源管理器中单击这两个文件,它只会转到服务器(asax.cs)端,为什么以及如何?我可以看到客户端(global.asax)页面吗?

4

3 回答 3

8

Global.asax 是与“代码隐藏”文件 .asax.cs 一起使用的标记文件。但据我所知,标记文件的使用并不多(所有内容通常都进入代码隐藏文件)。不过,您可以通过在解决方案资源管理器中右键单击它,然后“查看标记”来查看它。

您不能向标记添加内容,只有几个属性:

<%@ Application Codebehind="Global.asax.cs" 
                Inherits="WebApplication1.Global" 
                Language="C#" %>

MSDN 文档似乎确认 global.asax 的唯一目的是为应用程序级事件添加/覆盖处理程序:

Global.asax 文件,也称为 ASP.NET 应用程序文件,是一个可选文件,其中包含用于响应由 ASP.NET 或 HttpModules 引发的应用程序级事件的代码。

于 2013-10-21T07:26:24.397 回答
4

您可以在代码隐藏文件中按 F7 以显示.asax标记。

它的global.asax行为有点像一个 aspx 文件,在应用程序启动时被编译。

您甚至可以将您的方法(如Application_Startscript runat="server"放在global.asax.

我怀疑这是一种好习惯,但这应该允许热编辑正在运行的应用程序(我猜这应该会触发回收)它将被动态编译。

于 2013-10-21T07:36:24.303 回答
2

global.asax.cs 就是所谓的 global.asax 的代码隐藏文件。这两个文件之间没有真正的功能差异。代码隐藏只是为了分离标记和服务器端代码之间的关注点而设计的。

于 2013-10-21T07:29:29.210 回答