【问题标题】:Inline scripting in ASP.NETASP.NET 中的内联脚本
【发布时间】:2010-11-16 02:58:50
【问题描述】:
我想学习有关 ASP.NET 内联脚本的高级和基本知识,例如
<img src="<%= Page.ResolveUrl("~")%>Images/Logo.gif"/>
或
<asp:Label ID="lblDesc" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Description")%>'></asp:Label>
等等……
还有, 和 之类的有什么区别?
我在哪里可以找到这些用法从基本到高级的实现?
【问题讨论】:
标签:
asp.net
coding-style
inline-scripting
【解决方案1】:
查看this article 了解不同内联标记选项的详细信息。
来自文章:
-- 最基本的内联标签,
基本运行正常代码:
-- 用于小块
信息,通常来自对象和
单条信息
像单个字符串或 int 变量:
-- 用于绑定表达式;
例如 Eval 和 Bind,最常见的是
在 GridView 等数据控件中找到,
中继器等:
-- 用于表达式,而不是代码;
常见于数据源:
-- 用于指令语法;
基本上你在顶部看到的东西
你的 aspx 页面喜欢控制
注册和页面声明:
-- 这是一个服务器端注释,
你不想让任何人没有的东西
代码访问查看:
【解决方案2】:
一般来说,<%#..%> 用于预处理模板,例如在数据绑定时,其中对象的属性名称在编译时是未知的。例如,如果您有一个 ASP.NET Repeater 对象,并且您将一个对象列表数据绑定到它,则此表示法用于预填充除数据绑定生命周期之外的任何时候都无法设置的值。
其他符号,<%..%> 和 <%=..%> 更标准,你会看到这些比前面讨论的其他语法更频繁,特别是如果你使用 ASP.NET MVC 之类的东西而不是 ASP.NET Web 窗体.语法 <%..%> 内联执行任意脚本,仅此而已,但允许您编写整个 .NET 代码块,例如 if 语句、while 循环、for 循环等。语法 <%=..%> 是评估和写入语法,大致相当于<% Response.Write([..].ToString()) %>。即,<%= myVal %> 与 <% Response.Write(myVal.ToString()) %> 相同
这些语法是基本的 ASP.NET 知识。