Set Propriedade visível com a tag do servidor <% =%> no Framework 3.5

Estive trabalhando em um projeto do .NET Framework 4 usando tags de servidor como <% = Whatever%> para definir a visibilidade dos controles runat = "server", como o seguinte:

  <div id="MyId" runat="server" visible="<%=MyVisiblePropertyOnCodeBehind %>" >
    Content
  </div>

Isso funciona no framework 4, mas agora, ao tentar usá-lo em um projeto do Framework 3.5, parece não funcionar. Esse é um recurso exclusivo do Framework 4? Existe uma alternativa mais legal (e lado .aspx) para definir a visibilidade por trás do código? Estou usando o feio:

    MiId.Visible = MyVisiblePropertyOnCodeBehind

Desde já, obrigado

Tom

[EDITADO] SOLUÇÃO:

Obrigado pelos seus comentários que me fazem entender o meu problema e a soluçã

Foi minha culpa em mais de uma coisa.

No projeto VS2010, estávamos usando <% # em vez de <% =

Além disso, eu não percebi que no projeto VS2010 estávamos usando páginas herdadas não da “Page”, mas de uma classe CustomPage, que fazia a ligação automaticamente, sem que eu percebesse, e isso me faz pensar que era um Recurso apenas do Framework 4.0.

Como você disse aqui, se você tiver a seguinte marcação:

  <div id="MyId" runat="server" visible="<%# MyVisiblePropertyOnCodeBehind %>" >
    Content
  </div>

você pode fazê-lo funcionar, adicionando o seguinte ao código abaixo:

    public bool  MyVisiblePropertyOnCodeBehind = true;
    protected void Page_Load(object sender, EventArgs e) {
        DataBind();
        // Or if you want only for one control, MyId.DataBind();             
    }

Como eu li, esse DataBind () pode reduzir o desempenho do aplicativo. Você tem idéia de quanto? Isso poderia ser entendido como uma técnica “profissional” a ser usada em grandes projetos ou você acha que deveria ser evitada?

Eu adoro o modo como torna a marcação legível e fácil de entender em uma única exibição, mas eu não gostaria de ser culpado pelo código lento por isso.

questionAnswers(8)

yourAnswerToTheQuestion