介绍.net 框架中的 ASP.NET 内联表达式

本文包含以下 ASP.NET 内联表达式的介绍:

  • <% ... %>
  • <%= ... %>
  • <%@ ... %>
  • <%# ... %>
  • <%$ ... %>
  • <%-- ... %>
  • <%@ ... %>

<%...%> 嵌入式代码块

嵌入式的代码块用于保留使用传统的 ASP 向后兼容性。块中的代码可以执行编程语句,并在页呈现阶段中在当前页类中调用函数。

下面的示例演示一个 ASP.NET 页,它有示例嵌入式的代码块显示循环的结果中的 Microsoft Visual Basic.net 代码:
<%@ Page Language="VB" %>
<html>
<body>
    <form id="form1" runat="server">
    <% For i As Integer = 16 To 24 Step 2%>
    <div style="font-size: <% Response.Write(i)%>">
        Hello World<br />
    </div>
    <% Next%>
    </form>
</body>
</html>
一个嵌入式的代码块始终与 HTML 源混合的因为它是很难阅读和维护这些开发人员。


<%=...%> 显示表达式

在 < %=...%> 显示表达式是包含仅 Response.Write(…) 语句的嵌入式的代码块的等效。这是最简单的方式显示信息 (如单个字符串、 一个 int 变量或常数。

例如对于下面的代码示例显示当前时间:
<%@ Page Language="VB" %>
<html>
<body>
    <form id="form1" runat="server">
    <%=DateTime.Now.ToString() %>
    </form>
</body>
</html>
请记住显示表达式中不能使用服务器控件的属性。这是因为在.net Framework 直接编译而不是显示内容的属性值,该值作为在整个表达式。


<%@...%> 指令的表达式

指令的表达式是用于指定页和用户控件编译器时使用它们处理 ASP.NET Web 窗体 (.aspx) 页和用户控件 (.ascx) 文件设置的语法。

在 ASP.NET 页框架支持以下指令:
@ Page定义 ASP.NET 页分析器和编译器所使用的特定于页的属性。可以包含仅在.aspx 文件中。
* 仅在 ASP.NET Web 窗体页中,可以使用此指令的名称。
@ 控件定义 ASP.NET 页分析器和编译器所使用的特定于控件的属性。可以包含仅在.ascx 文件 (用户控件) 中。
* 此指令的名称,可仅在用户控制文件。
@ 导入将命名空间显式导入到页或用户控件中。
@ 实现以声明方式指示一个页或用户控件实现指定的.net 框架接口。
@ 注册将关联的别名与命名空间和类名。这使用户控件和自定义服务器控件能够在呈现时它们包含在所请求的页或用户控件。
@ 程序集在编译过程中,将程序集链接到当前页。它使该程序集的所有类和接口可用于在页上。
@ Master标识 ASP.NET 母版页。
@ WebHandler标识一个 ASP.NET IHttpHandler 页。
@ PreviousPageType提供了一种方法来获取对前一页强类型,如通过 PreviousPage 属性访问。
@ MasterType将一个类名称分配给 属性的 ASP.NET 页。 提供了一种创建 ASP.NET 母版页的强类型的引用的方法。
@ OutputCache以声明方式控制输出缓存策略或用户控件的页面。
@ 引用以声明方式链接到当前页或用户控件的页或用户控件。


<%#...%> 数据绑定表达式

在页上调用此服务器控件的控件的 DataBind 方法时,数据绑定表达式创建服务器控件属性与数据源之间的绑定。

下面的示例演示如何使用数据绑定表达式的函数的字符串绑定到标签的 Text 属性:
<%@ Page Language="VB" %>
<script runat="server">
    Protected Function SayHello() As String
        Return "Hello World"
    End Function

    Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)
        lblHello.DataBind()
    End Sub
</script>
<html>
<body>
    <form id="form1" runat="server">
    <asp:Label ID="lblHello" runat="server" Text="<%# SayHello%>"></asp:Label>
    </form>
</body>
</html>


<%$...%> 表达式生成器

若要设置基于应用程序的配置或资源文件中包含的信息的控件属性的值使用表达式生成器。以下是表达式生成器的基本语法:
< %$ 表达式前缀: 表达式 %> 值
美元符号 ($) 指示 ASP.NET 下面的表达式是对表达式生成器。表达式前缀定义如 AppSettings ConnectionStrings,或 资源 这样的表达式的类型。此外,您可以创建和定义您自己的表达式生成器。跟冒号后面的表达式值 (:) 是什么 ASP.NET 将实际使用的某些属性的值。

下面演示显示了如何使用表达式生成器来从 AppSettings 节点在 Web.config 文件中获取 Web 站点的版权和如何再将版权信息设置为文本的 文本 属性的值。

在 Web.config 文件中的 AppSettings 节点:
<appSettings>
    <add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/>
</appSettings>
表达式生成器,在 ASP.NET Web 窗体页中的:
<div id="footer">
    <asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
</div>


<-%-...--%> 服务器端注释块

服务器端注释块允许开发人员在任何位置的 ASP.NET Web 窗体页的 HTML 源的嵌入代码注释 (在 <script>代码块中除外)。将不在服务器上处理服务器端注释块的开始和结束标记之间的任何内容,或为所生成的页面上呈现。

下面的代码示例演示如何在 ASP.NET 页中使用服务器端注释块:
<%@ Page Language="VB" %>
<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim strName As String
        strName = Session("userName")
        lblUserName.Text = strName
    End Sub
</script>
<html>
<body>
    <form id="form1" runat="server">
    <%-- Label for UserName --%>
    <asp:Label ID="lblUserName" runat="server" Text=""></asp:Label>
    </form>
</body>
</html>


转自:http://support.microsoft.com/kb/976112/zh-cn

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值