上一篇:ASP.net组件编程中的两种事件编写方法 >>
ASP.NET事件小探讨
实际是以Byte类型值进行的存储),原理代码可见我以前发的《简单计数器实现程序》。
今天的任务是把原来WinForm中的文件读写放入到ASP.NET的BehindCode中,这就会出现
些许问题。
问题一:文件路径
在ASP.NET的BehindCode中写文件路径就不能因为文件在这个应用程序的目录下直接写文
件名来调用了。
例:
以前使用WinForm编程的时候,如果文本文件Count.txt跟程序的可执行文件在一个目录
下可直接使用FileStream fs=File.Open("Count.txt",FileMode.Open);来对文件进行读
取。
而在ASP.NET中,Web应用程序的路径是"虚路径",意思是没有映射为系统当前应用程序
默认路径(系统当前默认路径应该为C:\windows\system32,原因是此路径下面有Web应用
程序可供调用的丰富的Win32API)。那么虚拟路径的根是存储在什么地方呢?应该是在I
IS的配置文件中,在C#中这个路径就是通过Server.MapPath()函数来映射的。
例:
如果Count.txt文件在此Web应用程序的目录下,可以通过Server.MapPath("../Count.tx
t");来映射到这个文件。注:直接写文件名会找不到此文件,显示的是文件无法读取的
信息。
问题二:
Web应用程序事件问题
其实ASP.NET的通讯及访问模型中有三个层次
第一个层次就是Application,是Web应用程序层
此层次的变量周期为整个Application,不过在Application_Start和Application_End两
个事件中运行的代码,只有在应用程序开始或结束的时候才能进行(服务器启动/关闭或
者强制IIS把此应用程序启动/关闭的时候),因此在这两个事件中写计数器代码是无用
的。
第二个层次是Session,是Web应用程序的一个通信层
一次与用户的通信(从以一个IP访问应用程序开始,到这个IP与应用程序断开或超时断
开)对计数器来说是最有价值的体现,也是一个页面计数器的功能。
不过问题也随之出现了:
Session的Session_Start和Session_End事件是在一次通讯的开始和结束才被激发的。这
样如果在Session_Start实件中写代码的话,只有一次通讯开始时访问的页面上才有计数
器的显示,而在刷新后页面显示计数器的部分就不会再显示了,怎么办?不用着急请继
续往下看。
第三个层次是Page层,是每个页面即Web Document的控制对象层。
我们知道了一个Web页面有一个Page层,我们就会了解,一个页面调出的时候将会调用Pa
在此事件中添加计数器计数的代码,计数器就会因为页面刷新一次而增加一,这是我们
不愿意看到的。
怎么办?
很简单,在Session_Start中写计数器计数的代码,在Page_Load中写计数器显示的代码
,这样就可以实现我们需要的功能了。
希望通过这篇文章,能够帮助初学者理解这几个Web应用程序层次及对应的事件,有时可
能有对问题的错误见解,希望能有高手指教。
下一篇:asp.net连接Access数据库 >>
相关文章:
- · 坚持学asp.net——(十二)
- · 在ASP.NET中跨页面实现多选
- · Securing an ASP.Net application...
- · Send Email and Attachments with ASP.Net...
- · asp.net中的多語言使用
- · 網頁中彈出對自定義對話框並進行傳值
- · 將 ASP .NET WebForm 的 DataGrid 中的資料 匯出至 Microsoft Excel
- · ASP.NET中树形图的实现
- · 细细品味ASP.NET
- · ASP.NET中制作图形
- · ASP.NET常用函数
- · ASP.NET开发经验(2) --- ASP.NET中的一些图形处理
- · ASP.NET域名查询系统
- · [我的ASP.net学习历程]有关于.dll文件的迷惑
- · 自己动手写屏保
- · 实现性能目标的几种方法
- · Asp.Net 使用 GDI+ 绘制3D饼图入门篇源码
- · [我的ASP.net学习历程]调用类库函库的简单加密方法
- · ASP.NET 在域控制器上使用默认 ASPNET 帐户不能正常运行!
- · 坚持学asp.net——(十一)
- · 排序算法
- · 坚持学asp.net——(十)
- · 文本型单页面ASP.NET计数器
- · 一种全新的软件界面设计方法(摘)
- · 如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查询和显示 Excel 数据
- · 如何给用户控件定义属性(C#:ASP.NET)
- · 如何复制一个目录里面的所有目录和文件
- · asp.net中显示DataGrid控件列序号的几种方法
- · Asp.NET常用函数 (VB.net)
- · Asp.net动态生成html页面
- · .Net中如何操作IIS
- · asp.net访问word的类
- · 在 ASP.NET 中执行 URL 重写
- · 窗体标题栏外的拖动操作
- · Asp.net页面输出到EXCEL
- · MSHFlexGrid1使用技巧(一)[如何让MSHFlexGrid只能被选中一行]
- · Asp.NET中常用的一些优化性能的方法
- · 将图片插入数据库并使用asp.net读取出来的正确方法
