zoukankan      html  css  js  c++  java
  • ASP.NET_编码模型

     

    使用Visual Studio 开发ASP.NET网站,有两种编码模型可供选择

    一:内联代码

    二:代码隐藏

    内联代码:这个模型和传统的ASP代码模型很相似,所有的代码以及HTML标签都被存放在同一个文件内,代码都是内联在一个或多个脚本块内的。这种模型比较方便,,因为它所有东西都是放在一个包内,这对于开发简单的网页很方便

    代码隐藏:这个模型将每个ASP网页分离到两个文件内:一个是包含HTML以控件标签的.aspx标记文件,另一个是后台代码文件,比如cs代码文件,这种模型提供了将用户界面和后台代码相分离的特性,这对于构建复杂的页面非常重要。

    需要说明的是,只有创建基于无项目文件的开发时才能自由选择这两种编码模型,对于创建Web项目时,则只能使用代码隐藏模型。

    创建内联代码编码模型:

    正如之前所说,创建内联代码模型,需要使用基于无项目文件的开发

    首先创建一个网站

    Image635088056178807406

    当使用添加新项的时候,勾选【将代码放在单独的文件中】,即将HTML,控件标识和后台代码文件分开存放了

     

    image

    下面我们分别创建Default2和Default3页面,其中Default2使用了代码隐藏模型,而Default3使用内联代码模型

    image

    先来看下他们的默认代码:

    Default2

       1: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
       2:  
       3: <!DOCTYPE html>
       4:  
       5: <html xmlns="http://www.w3.org/1999/xhtml">
       6: <head runat="server">
       7: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
       8:     <title></title>
       9: </head>
      10: <body>
      11:     <form id="form1" runat="server">
      12:     <div>
      13:     
      14:     </div>
      15:     </form>
      16: </body>
      17: </html>

    Default2的后台代码

       1: using System;
       2: using System.Collections.Generic;
       3: using System.Linq;
       4: using System.Web;
       5: using System.Web.UI;
       6: using System.Web.UI.WebControls;
       7:  
       8: public partial class Default2 : System.Web.UI.Page
       9: {
      10:     protected void Page_Load(object sender, EventArgs e)
      11:     {
      12:  
      13:     }
      14: }

    Default3

       1: <%@ Page Language="C#" %>
       2:  
       3: <!DOCTYPE html>
       4:  
       5: <script runat="server">
       1:  
       2:  
    </script>
       6:  
       7: <html xmlns="http://www.w3.org/1999/xhtml">
       8: <head runat="server">
       9: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      10:     <title></title>
      11: </head>
      12: <body>
      13:     <form id="form1" runat="server">
      14:     <div>
      15:     
      16:     </div>
      17:     </form>
      18: </body>
      19: </html>

    现在来做一个功能演示:点击页面中的按钮,是的Label标签显示当前系统时间,用内联代码和代码隐藏模型分别实现,查看它们的区别.

    首先代码隐藏模型实现如下:

       1: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
       2:  
       3: <!DOCTYPE html>
       4:  
       5: <html xmlns="http://www.w3.org/1999/xhtml">
       6: <head runat="server">
       7: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
       8:     <title>代码隐藏编码模型</title>
       9: </head>
      10: <body>
      11:     <form id="form1" runat="server">
      12:     <div>
      13:     
      14:         <asp:Label ID="Label1" runat="server" Text="点击"></asp:Label><br />
      15:         <br />
      16:         <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button_Click" />
      17:     
      18:     </div>
      19:         
      20:     </form>
      21: </body>
      22: </html>

    后台代码:

       1: using System;
       2: using System.Collections.Generic;
       3: using System.Linq;
       4: using System.Web;
       5: using System.Web.UI;
       6: using System.Web.UI.WebControls;
       7:  
       8: public partial class Default2 : System.Web.UI.Page
       9: {
      10:     protected void Page_Load(object sender, EventArgs e)
      11:     {
      12:  
      13:     }
      14:     protected void Button_Click(object sender, EventArgs e)
      15:     {
      16:         Label1.Text = "当前时间为:" + DateTime.Now.ToLongTimeString();
      17:     }
      18: }

    内联代码模型:

       1: <%@ Page Language="C#" %>
       2:  
       3: <!DOCTYPE html>
       4:  
       5: <script runat="server">
       1:  
       2:  
       3:     protected void Button1_Click(object sender, EventArgs e)
       4:     {
       5:         Label1.Text = "当前系统时间为:" + DateTime.Now.ToLongTimeString();
       6:     }
    </script>
       6:  
       7: <html xmlns="http://www.w3.org/1999/xhtml">
       8: <head runat="server">
       9: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      10:     <title>内联代码编码模型</title>
      11: </head>
      12: <body>
      13:     <form id="form1" runat="server">
      14:     <div>
      15:     
      16:         <asp:Label ID="Label1" runat="server" Text="点击"></asp:Label>
      17:         <br />
      18:         <br />
      19:         <br />
      20:         <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
      21:     
      22:     </div>
      23:     </form>
      24: </body>
      25: </html>
    两者的运行效果如下:
    image

    可以看出内联代码是直接写在Spcript脚本块中的。而代码隐藏是写在以后.cs为结尾的页面名的文件中.

    既然代码隐藏模型的用户界面和后台代码是分开的,那么它们是如何连接的呢?

    首先每个个.aspx文件都以Page指令开始,同时指定页面所采用的语言以及后台代码的存放位置,当然啦,内联模型是没有后台代码的。再来看一下Page指令

       1: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

    .aspx文件使用Inherits特性来声明正在使用的类,使用CodeFlie特性指定包含隐藏代码的文件名,即Inherits指定的类,就是CodeFlie的Default2.aspx.cs中的

       1: public partial class Default2 : System.Web.UI.Page

     

  • 相关阅读:
    HDU 2563 统计问题 (DFS + 打表)
    KendoUi中KendoDropDownList控件的使用——三级级联模块的实现
    POJ 1325 &amp;&amp; ZOJ 1364--Machine Schedule【二分图 &amp;&amp; 最小点覆盖数】
    crontab FAQ
    思科2960trunk vlan配置及路由IP配置
    hdoj-1593-find a way to escape【数学题】
    Java编程思想(四) —— 复用类
    在 Android 应用程序中使用 SQLite 数据库以及怎么用
    Swift Standard Library Reference.pdf
    VC、IE、ASP环境下打印、预备的完美解决方式
  • 原文地址:https://www.cnblogs.com/tao-zi/p/3176485.html
Copyright © 2011-2022 走看看