ASP.NET和Web窗体页介绍


  本文标签:Web窗体页 ASP.NET

  在 ASP.NET 网页中,用户界面编程分为两个不同的部分:可视组件(视图)和结合了模型和控制器的逻辑  。这种划分将页面的可视部分(视图)同与页面交互的、页面背后的代码(模型和控制器)分离开来  。

  可视元素称为 Web窗体页  。该页面由包含静态 HTML 服务器控件或 ASP.NET 服务器控件(或同时包含这两种控件)的文件构成  。在此示例中的窗体页由以下代码组成:

  1. <%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs" 
    Inherits="PageController._Default" %> 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <html xmlns="http://www.w3.org/1999/xhtml"> 
  4. <head runat="server"> 
  5. <title>Untitled Pagetitle> 
  6. head> 
  7. <body> 
  8. <form id="form1" runat="server"> 
  9. Name:<asp:TextBox ID="name" runat="server" /> 
  10. <p /> 
  11. <asp:Button ID="MyButton" Text="Click Here" OnClick="SubmitBtn_Click" 
    runat="server" /> 
  12. <p /> 
  13. <span id="mySpan" runat="server">span> 
  14. form> 
  15. body> 
  16. html> 

  Web窗体页的逻辑由为了与窗体进行交互而创建的代码构成  。编程逻辑放在一个与用户界面文件分离的文件中  。此文件被称为"代码隐藏"文件:

  1. using System;  
  2. using System.Web;  
  3. using System.Web.UI;  
  4. namespace PageController  
  5. {  
  6. public partial class _Default : System.Web.UI.Page  
  7. {  
  8. protected void SubmitBtn_Click(object sender, EventArgs e)  
  9. {  
  10. mySpan.InnerHtml = "Hello, " + name.Text + ".";  
  11. }  
  12. }  

  
该类提供可由派生类覆盖的默认实现  。

  1. using System;  
  2. using System.Web;  
  3. using System.Web.UI;  
  4. using System.Web.UI.WebControls;  
  5. namespace PageController  
  6. {  
  7. public partial class BasePage : Page  
  8. {  
  9. protected Label eMail;  
  10. protected Label siteName;  
  11. override protected void OnInit(EventArgs e)  
  12. {  
  13. //   
  14. this.Load += new System.EventHandler(this.Page_Load);  
  15. base.OnInit(e);  
  16. }  
  17. protected void Page_Load(object sender, System.EventArgs e)  
  18. {  
  19. if (!IsPostBack)  
  20. {  
  21. string name = Context.User.Identity.Name;  
  22. eMail.Text = DatabaseGateway.RetrieveAddress(name);  
  23. siteName.Text = "my cool site";  
  24. PageLoadEvent(sender, e);  
  25. }  
  26. }  
  27. // this method can be overridden by sub class.  
  28. virtual protected void PageLoadEvent(object sender, System.EventArgs e)  {
  29. }
  30. }
  31. }

  
以上介绍ASP.NET和Web窗体页