asp.net里面这些符号:<%@,<%#, <%$, <%= 都代表什么意思,什么时候使用?

hjon 2009-03-06 10:54:40
初学asp.net, 经常看到aspx里面有这样的一些标记:
1. <%@ Page Language...
2. <%$ ConnectionStrings:...
3. <%# Eval(...

它们的区别就是<%后面跟的符号不太一样,这些标记都代表什么意思?一般都在什么时候使用?
...全文
2882 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
XXASS1X 2010-01-30
  • 打赏
  • 举报
回复
...
anchor_jsyc 2009-03-06
  • 打赏
  • 举报
回复
学习
hhxxcj 2009-03-06
  • 打赏
  • 举报
回复
<%@ 引用
<%# 绑定
<%$ 脚本标识
<%= 取值
liuyeede 2009-03-06
  • 打赏
  • 举报
回复
语法:
<%$ expressionPrefix: expressionValue %>
说明:
美元符号 ($) 通知 ASP.NET 它的后面是一个表达式。表达式前缀定义了表达式的类型,如 AppSettings、ConnectionStrings 或 Resources。冒号 (:) 后面的部分是 ASP.NET 将解析的实际表达式值。表达式语法不受任何特定 .NET 语言的约束。无论您在 ASP.NET 页中使用 Visual Basic、C# 还是其他任何编程语言,都可以使用相同的表达式语法。
范例:
[Code=HTML]<asp:SqlDataSource ID="SqlDataSource1" Runat="server"
SelectCommand="SELECT * FROM [Employees]"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>">
</asp:SqlDataSource>

<p align="center">

<asp:Literal runat="server" text="<%$ AppSettings: copyright %>"/>

</p>

[/code]
<configuration>
<connectionStrings>
<add name="NorthwindConnectionString1"
connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="copyright" value="(c)Copyright 2004 Northwind Traders"/>
</appSettings>

<!-- additional settings -->
</configuration>


除了显示配置文件中包含的值以外,还可以显示存储在资源文件(.resx 或 .resource)中的值。通常使用资源文件来存储与特定语言或语言与区域性组合有关的信息。通过使用资源文件和表达式,可以创建一个根据运行时确定的值(如浏览器所报告的语言和区域性设置,或用户的显式语言选择)来以不同语言显示文本的网页。

例如,在自动本地化内容时,可以使用表达式语法来设置服务器控件的 Text 属性,如此示例所示:

<asp:Label id="label1" runat="server" text="<%$ Resources: Messages, ThankYouLabel %>" />


在 App_GlobalResources 文件夹中,可以有名为 Messages.resx、Messages.es.resx、Message.de.resx 等的资源文件,为每个想支持的语言提供一个 Messages 资源文件。Messages.resx 文件表示在没有显式设置区域性的情况下使用的非特定(后备)资源。在 Messages.resx 文件中,可能有如下项:

<data name="ThankYouLabel"><value>Thank you very much!</value></data>




ilovew521527 2009-03-06
  • 打赏
  • 举报
回复
2楼回复
lovehongyun 2009-03-06
  • 打赏
  • 举报
回复
<%$

ASP.NET 表达式是基于运行时计算的信息设置控件属性的一种声明性方式。例如,可以使用表达式将属性设置为基于连接字符串的值、应用程序设置以及应用程序的配置和资源文件中所包含的其他值。当分析页的声明性元素时,在运行时计算表达式,并且表达式所表示的值被表达式语法替换。(因为在分析时计算表达式,所以不能在代码中动态创建表达式。)

表达式的一个常见用途是在数据源控件中引用连接字符串。您可以使用表达式来指定连接字符串在配置文件中的位置,而不用将连接字符串作为属性值直接包括在数据源控件中。运行时,将通过从配置文件读取连接字符串来解析表达式。对于需要在运行时解析而不是设置为静态值的任何属性设置,都可以使用表达式。

使用表达式有助于您通过以下方式维护应用程序:

以声明的方式引用动态信息可以减少应用程序中的代码。这将避免编写在运行时设置属性值的代码。

可以在多个控件中重用相同的设置。例如,如果您将某个连接字符串存储在 Web.config 文件中,然后使用表达式在页中引用该连接字符串,那么,您可以在一个中心位置更改该连接字符串,而不必在每个使用该连接字符串的控件中进行更改。

您可以将诸如连接字符串凭据的敏感数据(或其他应用程序数据)存储在 Web.config 文件中,然后对数据进行加密。

在可视化设计器(如 Visual Studio)中工作时,可以利用设计器中的工具来帮助您生成表达式。

表达式也是可扩展的,因此您可以定义自己的表达式语法。您可以创建调用自定义表达式处理程序的表达式,以使用自定义逻辑返回值。

<asp:SqlDataSource ID="SqlDataSource1" Runat="server" 
SelectCommand="SELECT * FROM [Employees]"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>">
</asp:SqlDataSource>
shenlong0125 2009-03-06
  • 打赏
  • 举报
回复
学习一下
liuyeede 2009-03-06
  • 打赏
  • 举报
回复
<%$ %>获取资源文件中定义的内容
pdsnet 2009-03-06
  • 打赏
  • 举报
回复
<%$ ? 这个没见过 楼上的都说的很清楚了.
hecong875 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sprc_lcl 的回复:]
<%@ 引用
<%# 绑定
<%$ ?
<%= 取值
[/Quote]只有引用的内容不允许回复!!
xfreyes 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 the_pain 的回复:]
http://www.cnblogs.com/terryli/archive/2008/03/25/1120482.html
[/Quote]

很详细
migercai 2009-03-06
  • 打赏
  • 举报
回复
<%@ 页面级别的 例:aspx——》aspx.cs ; 用户控件等


<%# 数据绑定专用 应该是在数据绑定控件中调用后台代码时候用



<%= 不在数据绑定控件中调用后台代码时候用

sprc_lcl 2009-03-06
  • 打赏
  • 举报
回复
<%@ 引用
<%# 绑定
<%$ ?
<%= 取值
the_pain 2009-03-06
  • 打赏
  • 举报
回复
http://www.cnblogs.com/terryli/archive/2008/03/25/1120482.html
zhushaoyue 2009-03-06
  • 打赏
  • 举报
回复
<%@ Page Language="C#" %>
<%# Eval("字段") %>
<%$ ConnectionStrings:liangfangConnectionString %>
webConfig里设置字符串连接用过
<%= 取值 %>

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧