global.asax和global.asax.cs之间有什么区别

时间:2013-10-21 07:24:01

标签: c# asp.net asp.net-mvc

  

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

  

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

3 个答案:

答案 0 :(得分:8)

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

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

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

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

  

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

答案 1 :(得分:4)

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

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

您甚至可以将方法(例如Application_Start)放入script runat="server"

中的global.asax.元素中

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

答案 2 :(得分:2)

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