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值

2)传入参数显示Routing后的Url 
在.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时使用表达式 
<%:”

I’a a test

”%> 将输出

I’a a test

2)不需要做HtmlEncode时使用表达式 
<%: new HtmlString(”

I’a a test

”)%> 将输出

I’a a test


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

你可能感兴趣的:(ado.net,asp.net,c#,datagrid,listview,action,resources)