2

我想学习有关 ASP.NET 内联脚本的高级和基本知识,例如

<img src="<%= Page.ResolveUrl("~")%>Images/Logo.gif"/>

或者

<asp:Label ID="lblDesc" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Description")%>'></asp:Label>

等等...

而且,<% %> 和 <%# %> 之类的东西有什么区别?

我在哪里可以找到这些用法的从基本到高级的实现?

4

2 回答 2

10

查看这篇文章,了解不同内联标签选项的详细信息。

来自文章:

<% ... %> -- 最基本的内联标签,基本运行正常代码:

<%= ... %> -- 用于小块信息,通常来自对象和单个信息,例如单个字符串或 int 变量:

<%# ... %> -- 用于绑定表达式;例如 Eval 和 Bind,最常见于 GridView、Repeater 等数据控件中:

<%$ ... %> -- 用于表达式,而不是代码;经常在 DataSources 中看到:

<%@ ... %> -- 用于指令语法;基本上你在你的 aspx 页面顶部看到的东西,比如控制注册和页面声明:

<%-- ... %> -- 这是一个服务器端注释,你不希望任何没有代码访问权限的人看到的东西:

于 2009-08-02T02:38:31.970 回答
2

通常,<%#..%>用于预处理模板,例如在数据绑定时,其中对象的属性名称在编译时是未知的。例如,如果您有一个 ASP.NET 中继器对象,并且您将一个对象列表数据绑定到它,则此表示法用于预填充除数据绑定生命周期之外的任何时候都无法设置的值。

其他表示法更标准,<%..%>并且<%=..%>您会比之前讨论的其他语法更频繁地看到这些,特别是如果您使用 ASP.NET MVC 之类的东西而不是 ASP.NET Web 窗体。该语法<%..%>内联执行任意脚本,仅此而已,但允许您编写整个 .NET 代码块,例如 if 语句、while 循环、for 循环等。该语法<%=..%>是一种评估和写入语法,大致等效的<% Response.Write([..].ToString()) %>。即,<%= myVal %><% Response.Write(myVal.ToString()) %>

这些语法是基本的 ASP.NET 知识。

于 2009-08-02T02:50:29.300 回答