WebForm概述

  • WebForm
  1. WebForm分为.aspx .aspx.cs两个文件(控件 内联的JavaScript CSS写在.aspx中 C#代码写在.aspx.cs中(该模式成为CodeBehind))
  2. .aspx & .aspx.cs: 

①.aspx→模板(控制页面长相) .aspx.cs→一般处理程序(控制程序逻辑)

②cs可调用aspx控件/aspx中可穿插C#代码(调用cs成员级别至少为public)

③.aspx文件分为三部分(有runat=“server”属性的标签/<% %>/标准HTML标签) .aspx.cs文件和服务器端控件生成一个类 <% %>生成一个类 后面的类在运行时生成 它继承前面的类 最后这个类再结合.aspx文件中的HTML生成页面文件发送给客户

  • .ashx & .aspx
  1. .ashx文件(一般处理程序) & .aspx文件(高级处理程序): .ashx用于写web handler/适合于生成动态图片 文本等内容
  2. IHttpHandler接口: 定义ASP.Net为使用自定义HTTP Web请求而实现的协定
  3. IHttpHandler.ProcessRequest(HttpContent x)方法: 页面提交时触发
  4. HttpContent: 封装有关个别HTTP请求的所有HTTP特定的信息
  5. HttpRequest(HttpContent.Request): 使ASP.Net能够读取客户端在Web请求期间发送的HTTP值
  6. HttpResponse(HttpContent.Response): 封装来自ASP.Net操作的HTTP响应信息
  • IHttpHandler
  1. (System.Web)IHttpHandler接口: 定义ASP.NET为使用自定义HTTP处理程序同步处理HTTP Web请求而实现的协定
  2. 实现文件下载(基于HTTP协议):
Response.AddHeader(“Content-DisPosition”, “attachment; filename=haha.jpg”); //文件名含中文时需HttpUtility.UrlEncode()
  1. 动态输出优点: 省服务器端资源 重名问题/能直接将生成内容以流的形式输出给浏览器 就不要生成临时文件
  • Page
  1. (System.Web.UI)Page类: 表示从ASP.NET Web应用程序的宿主服务器请求的.aspx文件(又称Web窗体页)
  2. .Request(HttRequest)
  3. .Response(HttpResponse)
  4. .Server(HttpServerUtility)
  5. .IsPostBack
  6. .Sessions
  7. .FindControl(): 根据控件Id寻找控件/一般情况下直接写控件Id就可以引用控件 但对于某些场合(使用ListView等控件的模板 编写自定义控件等)则需使用.FindControl()来找到控件
  8. .AppRelativeVirtualPath: 获得页面相对于应用根目录的虚拟路径
  9. .ResolveClientUrl(): 将虚拟路径转换为相对于当前请求的路径(通常在ListView等控件的模板中输出HTML时使用)
  10. .ResolveUrl(): 将虚拟路径转换为相对于网站根目录的路径
  • 三种控件
  1. HTML控件
ASP.NET将HTML控件当做普通字符串渲染到浏览器端(不做任何处理)
  1. ASP.NET控件
经过ASP.NET高度封装的控件(运行在服务器端/渲染到浏览器端)
  1. runat=server的HTML控件
运行在服务器端/渲染到浏览器端/部分封装(属性多为HTML属性)
与ASP.NET控件相比优点: ①操作方便②会对虚拟路径 id→ClientID进行处理
  • runat=server的HTML控件
  1. a→HtmlAnchor
     form→HtmlForm
     head→HtmlHead
     input→HtmlInputButton HtmlInputCheckBox HtmlInputText… 
     meta→HtmlMeta
     table→HtmlTable
     tr→HtmlTableRow
     td→HtmlTableCell
     title→HtmlTitle
     未单独封装的标签(如div)→HtmlGeneralControl
  1. Runat=server的HTML控件不像ASP.NET控件那样封装严密(如后者的BgColor属性为Color类型 而前者的BgColor属性为字符串类型)
  • 虚拟路径
  1. /(http): 根目录(域名相关)
  2. ../(http): 上级目录
  3. ./(http): 当前目录
  4. ~(ASP.NET): 从应用根目录(Application)开始定义(仅限于服务器端控件可以使用)/ASP.NET推荐用法(~并不会被浏览器识别 因此ASP.NET会将这个路径转换为相对于网站的根目录的全路径再输出到浏览器)
  5. “~”的编程处理: 服务器端控件会自行转换/html控件或需要在代码中转换时可以使用VirtualPathUtility类
  6. (System.Web)VirtualPathUtility类: 为常见的虚拟路径操作提供实用工具方法
.ToAbsolute()---转换为绝对路径
.AppendTrailingSlash()---如果virtualPath最后没有”/”则添加
.Combine(string basePath, string relativePath)---合并两个路径
.GetDirectory()---返回virtualPath的目录部分
.MakeRelative(string fromPath, string toPath)---计算两virtualPath的相对路径

posted on 2011-09-20 14:16  les_vies  阅读(1376)  评论(0编辑  收藏  举报

导航