我想学习有关ASP.NET内联脚本的高级和基本知识,比如
<img src="<%= Page.ResolveUrl("~")%>Images/Logo.gif"/>
或
<asp:Label ID="lblDesc" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Description")%>'></asp:Label>
等等......
并且&lt; %%&gt;之间有什么区别?和&lt;%#%&gt;还有这样的东西?
从基本到高级实现这些用法,我在哪里可以找到?
答案 0 :(得分:10)
查看this article以了解不同内联代码选项的具体信息。
来自文章:
&lt;%...%&gt; - 最基本的内联标签, 基本上运行普通代码:
&lt;%= ...%&gt; - 用于小块 信息,通常来自对象和 单件信息 像一个字符串或int变量:
&lt;%#...%&gt; - 用于绑定表达式; 例如Eval和Bind,最常见的 在像GridView这样的数据控件中找到 中继器等:
&lt;%$ ...%&gt; - 用于表达式,而不是代码; 常见于DataSources:
&lt;%@ ...%&gt; - 这是针对指令语法; 基本上你在顶部看到的东西 你的aspx页面就像控件一样 注册和页面声明:
&lt;% - ...%&gt; - 这是服务器端评论, 你不希望任何人没有的东西 代码访问看:
答案 1 :(得分:2)
通常,<%#..%>
用于预处理模板,例如在数据绑定时,从而在编译时不知道对象的属性名称。例如,如果您有一个ASP.NET Repeater对象,并且您将一个对象列表数据绑定到该对象,则此表示法用于预填充除数据绑定生命周期之外的任何点都无法设置的值。
其他符号<%..%>
和<%=..%>
更标准,你会比前面讨论的其他语法更频繁地看到它们,特别是如果你使用像ASP.NET MVC而不是ASP这样的东西.NET Web窗体。语法<%..%>
执行任意脚本内联,仅此而已,但允许您编写整个.NET代码块,如if语句,while循环,for循环等。语法<%=..%>
是一个评估 - 和 - 写语法,大致相当于<% Response.Write([..].ToString()) %>
。即,<%= myVal %>
与<% Response.Write(myVal.ToString()) %>
这些语法是ASP.NET的基本知识。