我有以下代码:
<div id='mymodal' class="modal hide fade <%# CssClass %>">
<div class="modal-header">
<asp:HyperLink ID="closePopup" NavigateUrl='<%# CloseLink %>' CssClass="close" runat="server" >×</asp:HyperLink>
<h3>
<asp:Literal ID="header" Text='<%# Header %>' runat="server" />
</h3>
</div>
<div class="modal-body">
<asp:Literal ID="body" Text='<%# Body %>' runat="server" />
</div>
</div>
第一个CssClass绑定使用&lt;%#或&lt;%=,而其他只能使用&lt;%#+ codebehind DataBind()(如果我使用&lt;%=,那么两个Literals显示字面意思是“&lt;%= Body%&gt;”文字)。
这两种方法有什么用?为什么这样工作?哪一个优于另一个?
答案 0 :(得分:2)
&lt;%=是Response.Write()
的意思&lt;%#用于数据绑定
来自
Can you tell the differences between <%= %>, <%# %> and <%$ %> ASP.NET expressions?
我跳这个链接对你很有帮助......
答案 1 :(得分:1)
根据Dan Crevier的建议
http://blogs.msdn.com/b/dancre/archive/2007/02/13/the-difference-between-lt-and-lt-in-asp-net.aspx
文字表达式归结为浏览器而且它只是 HTML无效。你可以看到的结果是:
•&lt;%=表达式在渲染时评估
•&lt;%#表达式在DataBind()时评估,而不是 如果没有调用DataBind(),则完全评估。
•&lt;%#表达式可用作服务器端控件中的属性。 &lt;%=表达式不能。
简而言之<%= %> is equivalent of Response.Write();
和
<%# %> is used for data-binding expressions.
答案 2 :(得分:0)