【问题标题】:Why are my embedded code blocks not being evaluated?为什么我的嵌入式代码块没有被评估?
【发布时间】:2018-04-19 15:51:43
【问题描述】:

我正在尝试在我的 ASP.NET 用户控件 .ascx 文件中使用嵌入式代码块来尝试从控件的公共属性设置控件的宽度和高度。我过去曾在不同的项目上做到这一点,但由于某种原因,它现在不起作用。如果我愿意,我可以在后面的代码中执行此操作,但为什么不评估代码块?我注意到当我不在标签中包含 runat="server" 时,它们会被评估。

.ascx 代码:

div id="PopupWindow" class="ModalWindow" 
        style="width: <%= Width.ToString() %>; height: <%= Height.ToString() %>;" runat="server" ></div>

检查器中的 css 错误:

element {

    width: <% Width.ToString() %>;
    height: <% Height.ToString() %>;
}

【问题讨论】:

    标签: css asp.net


    【解决方案1】:

    来自Introduction to ASP.NET inline expressions in the .NET Framework:

    请记住,显示表达式不能用于服务器控件的属性中。这是因为 .NET Framework 直接编译整个表达式,而不是将显示的内容作为属性的值。

    如果您将服务器控件(使用runat="server" 创建的元素)也视为一种嵌入式代码块,也许会有所帮助。那么里面的任何代码块都将是嵌套的服务器端代码,这是行不通的!

    因此,正如您已经提到的,可能的解决方案是删除runat="server",或者在服务器上处理事情并从那里输入大小。

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 2020-04-03
      相关资源
      最近更新 更多