What's the difference between <%# %> and <%= %>?

后端 未结 5 1019
执笔经年
执笔经年 2020-12-06 06:20

Pardon my ASP ignorance, but what\'s the difference?

相关标签:
5条回答
  • 2020-12-06 06:45

    The # version is used while data binding. <%= is just a simple Response.Write

    0 讨论(0)
  • 2020-12-06 06:53

    See http://weblogs.asp.net/leftslipper/archive/2007/06/29/how-asp-net-databinding-deals-with-eval-and-bind-statements.aspx

    As Albert says, it's all to do with parsing databinding statements.

    0 讨论(0)
  • 2020-12-06 07:01

    These are somewhat informally referred to as "bee stings". There are 4 types:

    <%# %> is invoked during the DataBinding phase.

    <%= %> is used to get values from code to the UI layer. Meant for backward compatibility with ASP applications. Shouldn't use in .NET.

    <%@ %> represents directives and allow behaviors to be set without resorting to code.

    <%: %> (introduced in ASP.NET 4) is the same as %=, but with the added functionality of HtmlEncoding the output. The intention is for this to be the default usage (over %=) to help shield against script injection attacks.

    Directives specify settings that are used by the page and user-control compilers when the compilers process ASP.NET Web Forms pages (.aspx files) and user control (.ascx) files.

    ASP.NET treats any directive block (<%@ %>) that does not contain an explicit directive name as an @ Page directive (for a page) or as an @ Control directive (for a user control).

    @Esteban - Added a msdn link to directives. If you need...more explanation, please let me know.

    0 讨论(0)
  • 2020-12-06 07:01

    javascript in .aspx that uses a master page.

    var e = document.getElementById('<%= lblDescription.ClientID %>');
    e.innerHTML = 'getElementById(\'lblDescription\') will be null';
    
    0 讨论(0)
  • 2020-12-06 07:04

    Not entirely related to the question, there's another related notation in asp.net called Expression Builder:

    <asp:SqlDataSource ... Runat="server"
     ConnectionString="<%$ ConnectionStrings:Northwind %>"
    />
    
    <asp:Literal Runat="server"
      Text="<%$ Resources:MyResources, MyText %>"
    />
    

    and it's extensible, see http://msdn.microsoft.com/en-us/magazine/cc163849.aspx#S4

    0 讨论(0)
提交回复
热议问题