为什么我的嵌入式代码块没有被评估?

时间:2018-04-19 00:27:01

标签: css asp.net

我试图在我的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() %>;
}

1 个答案:

答案 0 :(得分:0)

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

  

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

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

因此,正如您已经提到的,可能的解决方案是删除runat="server",或处理服务器上的内容并从中放入大小。