【问题标题】:What is the difference between global.asax and global.asax.csglobal.asax 和 global.asax.cs 有什么区别
【发布时间】:2013-10-21 07:24:00
【问题描述】:

说说 global.asax 和 global.asax.cs 的区别?

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

【问题讨论】:

  • aspx文件和aspx.cs文件的区别是一样的。一个是客户端文件,另一个是服务器端文件。 global.asax 是关于会话状态和应用程序状态的 Web 应用程序的一般定义。它没有客户网站。客户端文件global.asax就在那里调用cs文件中的全局类

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


【解决方案1】:

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 引发的应用程序级事件的代码。

【讨论】:

  • @RameshRajendran 不,我很确定你不能添加任何控件——只有几个属性。
  • 好的!!先生,我会检查一下....谢谢您的回答,这是可以理解的回答....
  • 是的,不知道。但我有一个疑问,aspx 文件有页面,但 asax 有应用程序。有什么区别?
  • @RameshRajendran 好吧,.aspx 实例化一个页面,而 .asax 实例化一个 HttpApplication 对象。但与页面不同的是,应用程序不能由用户加载,而只能由 ASP.Net 运行时在内部加载。 Global.asax 是一个扩展点——它允许您覆盖应用程序级事件处理程序。
  • 请参阅下面 jbl 的答案,了解为什么这个答案不完全正确。
【解决方案2】:

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

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

您甚至可以将您的方法(如Application_Start)放在script runat="server" 元素中的global.asax.

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

【讨论】:

  • @RameshRajendran 这可能取决于您的设置(已经使用了一段时间。在此处查看键绑定:microsoft.com/en-us/download/confirmation.aspx?id=13189)在我的平台(VS2012)上,它只允许从 asax.cs 到asax,而不是相反。 shift+f7 完全没有效果
  • 好的,我是右键单击并看到视图标记..没关系....我有一个疑问,应用程序和页面之间有什么区别? asax 有应用程序 aspx 有页面吗?为什么?
  • @RameshRajendran 页面、Web 服务、处理程序等可以被视为基本组件。应用程序是一个容器,它说明了所服务的不同组件的一般组织(包括路由、会话状态、错误处理、配置……)。您可以将应用程序视为一个商店,它组织对正在销售的产品(页面)的访问。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    • 2011-02-25
    相关资源
    最近更新 更多