<%$,<%@,<%=,<%#…怎么办?


211

我已经在经典的ASP和ASP.NET中进行了编程,并且在服务器端代码的标记中看到了不同的标记。

最近,我在MSDN上遇到了一个不错的博客,博客讨论了以下两者之间的区别:

  • <%= (百分比和等号)和
  • <%# (百分号和哈希/磅/八丁基)

<%#仅在databind <%=上求值,而在render上求值),但我还看到:

  • <%$ (百分比和美元符号)和
  • <%@ (百分号和at符号)。

我相信<%@加载程序集之类的东西,也许<%$还从配置文件加载东西?我不太确定

我只是想知道是否有人可以为我澄清所有这些问题,并可能解释为什么创建这么多看似用途相似的不同标签很重要?


72
我很高兴您提出要求,因为Google很难做到;)
Nicolas Dorier 2009年

8
Google不可能!
jdbosley 2014年

<%#经常与结合使用eval,但不必这样做:只要您Page.DataBind()在包含页面或其主页上运行,就可以使用它运行任何服务器端代码。看来,这是如果你想你的唯一选择“注入”服务器端代码到服务器端控件的属性,如<asp:TextBox<asp:LinkButton甚至是<input runat="server">
吉拉德·巴纳

1
我搜索了@jdbosley,"<%=" "<%:""<%@" "<%#"并将其发送到这里。
Rudey

2
@RuudLenders,对您来说很幸运,祝您工作顺利。2014年,搜索这些标签未返回高质量的结果。
jdbosley

Answers:


296

我想这是因为这是一个可以接受的答案,但是尝试编辑/ w链接无效。这是我尝试输入的有关“ <%$”表达式评估的链接:msdn.microsoft.com/en-us/library/d5bd1tad.aspx
John MacIntyre

6
所有这些都有名称吗?这些被称为一个整体吗?
Vippy

9
@Vippy他们被称为蜜蜂 st 。
伊恩·博伊德

1
@Lankymart我可以找到的最早用法是2008
Ian Boyd

1
@Vippy MS称它们为嵌入式代码块 “蜂s ”是一个非正式术语。
shiggity

5

您已经介绍了其中的2个(<%#仅在databind上求值,<%=在render上求值),“<%@ ”是它是编译器指令(即类似您所穿的东西)编译器的命令行)。

我不了解“ <%$”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.