代码之家  ›  专栏  ›  技术社区  ›  Curtis White

ASP.NET代码表达式、数据绑定和其他声明性表达式

  •  5
  • Curtis White  · 技术社区  · 14 年前

    这些标签有什么区别?

    <% l%; %= %$

    更重要的是,如何在ASP.NET控件中使用声明性语法显示页属性?我正尝试在ASP.NET控件中执行此操作。任务是设置标签的文本,但我不想在更改输出控件时按语法进行设置。我得到一个关于服务器端控件不能包含此语法的错误。我不确定我想要做什么需要一个数据绑定控件,但这是另一个选项。

    部分答案即将出现。

    更新 我在ASP.NET 4.5中看到了一个新标记?网站

    <%:

    2 回复  |  直到 14 年前
        1
  •  9
  •   Curtis White    10 年前

    部分回答

    引自Mike Banavige

    <%%>嵌入的代码块是 在 页面的呈现阶段。中的代码 块可以执行编程 中的语句和调用函数 当前页类。 http://msdn2.microsoft.com/en-gb/library/ms178135(vs.80).aspx

    <%=%>最适合显示 单个信息。 http://msdn2.microsoft.com/en-us/library/6dwsdcf5(VS.71).aspx

    <%#%>数据绑定表达式语法。 http://msdn2.microsoft.com/en-us/library/bda9bbfx.aspx

    <%$%>ASP.NET表达式。 http://msdn2.microsoft.com/en-us/library/d5bd1tad.aspx

    <%@%>指令语法。 http://msdn2.microsoft.com/en-us/library/xz702w3e(VS.80).aspx

    <%----%>服务器端注释。 http://msdn2.microsoft.com/en-US/library/4acf8afk.aspx

    更新:

    好吧,这似乎有效

    <asp:Label ID="MyLabel" runat="server" Text='<%# MyProperty%>'></asp:Label>
    

    如果我使用eval语法,那么我会得到一个关于数据绑定控件的错误,或者我使用<%,那么我会得到一个服务器端控件错误。更多的颜色谢谢……不确定我真的明白发生了什么。

    也许它与渲染阶段有关。

    更多观察:

    我可以在不使用数据绑定的情况下使用<%=并获取属性值,但在不出现错误的情况下无法在服务器端控件中使用它。

    如果在服务器端控件中使用<%,但需要执行page.databind。

    有趣的是,当我要呈现不在控件内的文本时,我可以使用<%=或<%。尽管后者需要数据绑定。

    解释了新的<%:语法,也称为代码表达式语法

    使用ASP.NET 4,我们将引入新的代码表达式语法(<%: %>)呈现输出,如<%=%>块,但也 在执行此操作之前自动对其进行HTML编码。

    http://weblogs.asp.net/scottgu/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2

        2
  •  0
  •   Brad    14 年前

    不,服务器端控件不能。例如,我有一个名为skinPath的字符串属性,它为我提供当前主题的完整app_主题路径。我使用它的方式如下:

    <img src='<%= SkinPath %>/Images/myImage.png' />
    

    但是,以下内容不起作用:

    <asp:Image ID='image' runat='server' ImageUrl='<%= SkinPath %>/Images/myImage.png' />
    

    相反,它呈现 src 字面意思是 在结果中 <img> .