找回密码
 FreeOZ用户注册
查看: 1637|回复: 2
打印 上一主题 下一主题

$的作用

[复制链接]
跳转到指定楼层
1#
发表于 15-12-2008 03:28:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除, 无法发言

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
http://www.codes63.net/showtopic.aspx?forumid=2&topicid=228&go=next


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

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

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

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

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

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

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

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

ASP.NET 表达式的基本语法如下:

                               
登录/注册后可看大图

<%$ expressionPrefix: expressionValue %>


美元符号 ($) 通知 ASP.NET 它的后面是一个表达式。表达式前缀定义了表达式的类型,如 AppSettings、ConnectionStrings 或 Resources。冒号 ( 后面的部分是 ASP.NET 将解析的实际表达式值。

表达式语法不受任何特定 .NET 语言的约束。无论您在 ASP.NET 页中使用 Visual Basic、C# 还是其他任何编程语言,都可以使用相同的表达式语法。

连接字符串

表达式的一个常见用途是根据存储在 Web.config 文件中的连接字符串的值设置控件(如 SqlDataSource 控件)的连接字符串属性。例如,您可能具有包含连接字符串属性的以下 SqlDataSource 控件:

                               
登录/注册后可看大图

<asp:SqlDataSource ID="SqlDataSource1" Runat="server"

                               
登录/注册后可看大图

    SelectCommand="SELECT * FROM [Employees]"

                               
登录/注册后可看大图

    C>

                               
登录/注册后可看大图


</asp:SqlDataSource>


突出显示的代码演示一个表达式,该表达式包含在引号内,表示属性的值。该表达式引用在 Web.config 文件的connectionStrings元素中定义的连接字符串“NorthwindConnectionString1”。connectionStrings 元素可能如下所示:

                               
登录/注册后可看大图

<configuration>

                               
登录/注册后可看大图


<connectionStrings>

                               
登录/注册后可看大图


<add name="NorthwindConnectionString1"

                               
登录/注册后可看大图

      c

                               
登录/注册后可看大图

      providerName="System.Data.SqlClient"
/>

                               
登录/注册后可看大图


</connectionStrings>

                               
登录/注册后可看大图


<!-- additional settings -->

                               
登录/注册后可看大图


</configuration>


说明:

建议您对包含连接字符串的配置文件节进行加密,以增加安全性。有关详细信息,请参见使用受保护的配置加密配置信息。在上面的示例中,为了清楚起见,配置文件的 configuration 节显示为未加密。

每个连接字符串都被赋予一个名称,您可以在 ASP.NET 页内在表达式中使用该名称来引用连接字符串。

应用程序设置

除了将表达式用于连接字符串之外,还可以使用表达式来引用在网站可访问的配置文件中定义的应用程序设置。例如,您可以将经常使用的字符串(如站点的版权信息)存储在 Web.config 文件的 appSettings 节中,可能如下所示:

                               
登录/注册后可看大图

<appSettings>

                               
登录/注册后可看大图


<add key="copyright" value="(c)Copyright 2004 Northwind Traders"/>

                               
登录/注册后可看大图


</appSettings>

在 ASP.NET 页中,可以通过使用类似于以下形式的表达式来引用值:

                               
登录/注册后可看大图

<%$ AppSettings: copyright %>

您可以使用这种方法在配置文件内维护经常引用的元素,而无需在每一页上更改相同的文本。
使用表达式显示静态内容

如果您希望将表达式用作页或控件中的静态值,可以将表达式用作 ASP.NET 服务器控件的一部分。典型的策略是添加一个 Literal 控件,并将其 Text 属性设置为一个表达式。例如,可以使用如下代码来替换每一页底部的版权声明:

                               
登录/注册后可看大图


<p align="center">

                               
登录/注册后可看大图



                               
登录/注册后可看大图


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

                               
登录/注册后可看大图



                               
登录/注册后可看大图


</p>



资源文件

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

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

                               
登录/注册后可看大图

<aspabel 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>

在其他资源文件中可能有类似项,其中字符串被相应地翻译成该资源文件所表示的语言。

转自MSDN:http://msdn2.microsoft.com/zh-cn/library/d5bd1tad.aspx
回复  

使用道具 举报

2#
发表于 22-12-2008 13:26:46 | 只看该作者
在jquery里面更有用。
回复  

使用道具 举报

3#
发表于 23-12-2008 15:30:12 | 只看该作者
建议你还是多看看的英文的吧,如果你登陆了,和你的同事交流工作,你还要想那些英文名词都是什么中文吗?
可视化设计器
  -- 才知道是这名字

ASP.NET表达式是基于运行时计算的信息设置控件属性的一种声明性方式。例如,可以使用表达式将属性设置为基于连接字符串的值、应用程序设置以及应用程序的配置和资源文件中所包含的其他值。
  -- 读起来忒费劲

当分析页的声明性元素时,在运行时计算表达式,并且表达式所表示的值被表达式语法替换。
  -- 是不是中文的语法不对劲,感觉好像有点别扭呢。终于明白老外听我们说外语的感觉了。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 2-11-2024 16:22 , Processed in 0.045003 second(s), 18 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表