Asp.Net C#4.0新特性:页面标记<%%>

在Asp.Net4.0中<%符号表达式%>有四种形式,分别为<%=”hello world”%>,<%$expression%>,<%#expression%>,<%:abc%> 我们分别来看一下
1.<%=表达式%> 这中写法支持 asp,jsp 等等,他就是直接输出表达式的值,它等同于: Response.Write(表达式);
2. <%$declarationExp:expression%> 这是一种声明式表达式,他在Asp.Net 2.0时被引入,我们可以利用这个表达式,输出AppSettings中的配置,给SqlDataSource控件设定连接字符串等等,在.Net 4.0时我们可以在这个表达式中输出Url Routing中的参数值,或者根据设置得到UrlRouting后的URL。
1)在Literal中显示URL Routing 当前的action值
<asp:Literal ID="l" EnableViewState="false" Text="<%$RouteValue:action %>" runat="server"></asp:Literal>
2)传入参数显示Routing后的Url 
<asp:Label ID="lb" EnableViewState="false" Text="<%$RouteUrl:controller=Category ,action=edit,id=1%>" runat="server"></asp:Label>
在.Net 4.0支持的系统默认支持的表达式有:Resources, ConnectionStrings,AppSettings,RouteUrl,RouteValue这些在根配置文件web.config的system.web/compilation/expressionBuilders配置节中有配置
更多介绍可以参考:
http://msdn.microsoft.com/zh-cn/library/d5bd1tad(v=VS.100).aspx
http://msdn.microsoft.com/zh-cn/library/system.web.compilation.routeurlexpressionbuilder.aspx 
3.<%#expression%>表示数据绑定,必须在调用DataBind方法才能输出绑定的值,通常用在DataGrid,Repeater,ListView等模板控件中。 
4.<%:expression%>它是一个新增的表达式方式,表示将expression HtmlEncode后输出,如果这个表达式的类型时IhtmlString,它将通过IhtmlString接口的ToHtmlString()方法 来做UrlEncode,.Net 4.0中HtmlString类通过实现这个接口,避免重复做HtmlEncode。
1)需要做HtmlEncode时使用表达式 
<%:”<h1>I’a a test</h1>”%>  将输出  <h1>I’a a test</h1>
2)不需要做HtmlEncode时使用表达式 
<%: new HtmlString(”<h1>I’a a test</h1>”)%>  将输出  <h1>I’a a test</h1>

这个很酷的feature在Asp.Net Mvc 2.0中被广泛使用。
这些表达式都出现在aspx页面上,在编译aspx页面时编译程序会使用正则比表达式将这些表达式解析成后台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值