ASP.NET代码表达式,数据绑定和其他声明性Expressoins

Cur*_*ite 5 asp.net data-binding

这些标签有什么不同?

<%<%#<%= <%$

更重要的是,如何在ASP.NET控件中使用声明性语法显示页面属性?我试图在ASP.NET控件中执行此操作.任务是设置标签的文本但我不想在我想要更改输出控件的情况下以编程方式执行此操作.我收到有关服务器端控件的错误,不能包含此语法.我不确定我需要一个数据绑定控件来做我想做的事,但这是另一种选择.

部分答案即将到来.

更新我在ASP.NET 4.5中看到过一个新标签?现场

<%:

Cur*_*ite 9

部分答案

引自Mike Banavige的话

<%%>嵌入式代码块是在页面呈现阶段执行的服务器代码.块中的代码可以在当前页面类中执行编程语句和调用函数. http://msdn2.microsoft.com/en-gb/library/ms178135(vs.80).aspx

<%=%>对于显示单条信息最有用. http://msdn2.microsoft.com/en-us/library/6dwsdcf5(VS.71).aspx

<%#%>数据绑定表达式语法. http://msdn2.microsoft.com/en-us/library/bda9bbfx.aspx

<%$%> ASP.NET表达式. http://msdn2.microsoft.com/en-us/library/d5bd1tad.aspx

<%@%>指令语法. http://msdn2.microsoft.com/en-us/library/xz702w3e(VS.80).aspx

<% - - %>服务器端注释. http://msdn2.microsoft.com/en-US/library/4acf8afk.aspx

更新:

好的,这似乎有效

<asp:Label ID="MyLabel" runat="server" Text='<%# MyProperty%>'></asp:Label>
Run Code Online (Sandbox Code Playgroud)

如果我使用eval语法然后我得到关于数据绑定控件的错误或我使用<%然后我得到服务器端控件错误.任何更多的颜色赞赏..不确定我真的明白发生了什么.

也许它与渲染阶段有关.

几点观察:

我可以使用<%=没有数据绑定并获取属性值但不能在服务器端控件中使用它而不会出现错误.

如果我在服务器端控件中使用<%#但我需要执行Page.Databind.

有趣的是,当我想渲染不在控件内的文本时,我可以使用<%=或<%#.虽然后者需要数据绑定.

解释了新的<%:语法,也称为代码表达式语法

在ASP.NET 4中,我们引入了一种新的代码表达式语法(<%:%>),它可以像<%=%>块一样呈现输出 - 但在执行此操作之前,它还会自动对HTML进行编码.

http://weblogs.asp.net/scottgu/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2