现在的位置: 首页 > 综合 > 正文

asp.net quickstar

2013年01月27日 ⁄ 综合 ⁄ 共 3236字 ⁄ 字号 评论关闭

1、ASP.NET Web 窗体页框架是一种可用于在服务器上动态生成网页的可伸缩公共语言运行库编程模型。07-12-17

2、ASP.NET 提供了与现有 ASP 页的语法兼容性。这包括对 <% %> 代码呈现块的支持,与 ASP 不同,上述 <% %> 块中使用的代码实际上是使用脚本引擎编译的,而不是解释。这可以提高运行时执行性能。只有包含在 <% ... %> 中的代码才得以执行,同时计算包含等号的表达式 <%= ... %>,并将计算结果作为内容发出。因此,<%="Hello World" %> 呈现与 C# 代码 <% Response.Write("Hello World"); %> 相同的内容。使用 <% %> 代码块的开发人员必须自定义管理往返过程之间的页状态并自定义解释发送的值。

3、除了代码和标记之外,ASP.NET 页还可以包含服务器控件,这些控件是可编程的服务器端对象,服务器控件参与页的执行,并生成它们自己的标记呈现给客户端。服务器控件的主要优点在于它们使开发人员可以从简单的构造块组件获取复杂的呈现和行为,从而大幅度减少了生成动态网页所需的代码量。服务器控件的另一个优点在于可以很容易地自定义其呈现或行为。服务器控件可以声明方式(通过标记)或编程方式(通过代码)设置属性。服务器控件(和页本身)还公开了一些事件,开发人员可以处理这些事件以在页执行期间执行特定的操作或响应将页发回服务器的客户端操作(“回发”)。此外,服务器控件还简化了在往返于服务器的过程中保留状态的问题,自动在连续回发之间保留其值,其值存储在往返于请求之间的 <input type="hidden"> 窗体字段中。

4、页导航(方案一)使用 <asp:hyperlink runat=server> 控件定位到另一页(定位过程中传递自定义查询字符串参数)。然后,此示例演示如何从目标页轻松地访问这些查询字符串参数。

<script language="C#" runat="server">

        void Page_Load(Object Src, EventArgs E) {

           Random randomGenerator = new Random(DateTime.Now.Millisecond);

           int randomNum = randomGenerator.Next(0, 3);

           switch(randomNum) {

              case 0:
                Name.Text = "Scott";
                break;

              case 1:
                Name.Text = "Fred";
                break;

              case 2:
                Name.Text = "Adam";
                break;
           }

           AnchorLink.NavigateUrl = "controls_navigationtarget_cs.aspx?name=" + System.Web.HttpUtility.UrlEncode(Name.Text);
        }

    </script>

<script language="C#" runat="server">

        void Page_Load(Object Sender, EventArgs e) {

           if (!Page.IsPostBack) {
              NameLabel.Text = Server.HtmlEncode(Request.QueryString["Name"]);
           }
        }

    </script>

页导航(方案二)并不是所有的页导航方案都通过客户端上的超链接启动。ASP.NET 页面开发人员还可以调用 Response.Redirect(url) 方法,从服务器启动客户端页重定向或导航。通常在以下情况采用这种方式:在实际进行导航之前,一些客户端输入需要服务器端验证。

5、在页之间共享代码:可以将代码放在站点的每个页上(使用上一节中所述的内联或代码隐藏分离模型),但有时您将希望在站点中的多个页之间共享代码,这种做法既低效又使代码难以维护。

 App_Code代码目录,与页可在运行时动态编译一样,任意代码文件(例如,.cs 或 .vb 文件)也可以在运行时动态编译。ASP.NET 2.0 引入了 App_Code 目录,该目录可以包含一些独立文件,这些文件包含要在应用程序中的多个页之间共享的代码。与 ASP.NET 1.x 不同(1.x 需要将这些文件预编译到 Bin 目录),App_Code 目录中的所有代码文件都将在运行时动态编译,然后提供给应用程序。可以在 App_Code 目录下放置多种语言的文件,前提是将这些文件划分到各子目录中(在 Web.config 中用特定语言注册这些子目录)。下面的示例演示如何使用 App_Code 目录包含一个从页调用的类文件。
Bin目录:在 ASP.NET 版本 1 中支持 Bin 目录,该目录类似于 Code 目录,不同的是它可以包含预编译的程序集。如果需要使用可能由其他人编写的代码,则此目录十分有用,您无需访问源代码(VB 或 C# 文件)就可以得到编译后的 DLL。只需将程序集放在 Bin 目录中,就可以在您的站点中使用它。默认情况下,Bin 目录中的所有程序集都自动加载到应用程序中,然后可供各页访问。您可能需要使用页最上方的 @Import 指令从 Bin 目录的程序集中导入特定的命名空间。

  <@ Import Namespace="MyCustomNamespace" >
全局程序集缓存,可供计算机上的所有应用程序使用(而不像 Bin 和 App_Code 那样仅限于特定的应用程序)。
6、数据邦定语法: 。<%# %> 代码块中的代码仅在其父控件容器的 DataBind 方法被调用时执行。
  对象标记语法:对象标记使页开发人员可以使用基于标记的声明性语法声明和创建变量的实例。
  <object id="items" class="System.Collections.ArrayList" runat="server"/>
 
  服务器端include 语法:使开发人员可以在 ASP.NET 页内的任意位置插入指定文件的原始内容。
  <!-- #Include File="Header.inc" -->
  ...
  <!-- #Include File="Footer.inc" -->
  
表达式语法:2.0 中的新增功能,可在分析页之前将值替换到页中。ConnectionString='<%$ connectionStrings:Pubs %>'

7、绑定到数据库:SqlDataSource 旨在替代通常在页中编写以创建连接和命令来查询数据库的 ADO.NET 代码。

默认情况下,SqlDataSource 控件返回包含查询结果的 DataSet 对象中的 DataView。
通过将 SqlDataSourceMode 属性设置为“DataReader”,可以配置 SqlDataSource 控件将数据作为 DataReader 返回。
 8、通过多种方式设置控件自身的样式属性来指定控件的样式。除了指定单个控件的样式外,ASP.NET 2.0 还引入了“主题”,
它提供了一种简易方式,可以独立于应用程序的页为站点中的控件和页定义样式设置。多个主题的优点在于,设计站点时可以不考虑样式,
以后应用样式时也无需更新页或应用程序代码。此外,还可以从外部源获得自定义主题,以便将样式设置应用于应用程序。主题的优点在于,
样式设置存储在一个位置,可以独立于应用该主题的应用程序来维护这些设置。
默认外观和命名外观:默认外观(未设置 SkinID 属性的外观)。将这些控件的 SkinID 属性设置名称,然后对页中要
应用此特定外观的控件设置此 SkinID 值。

抱歉!评论已关闭.