Установите свойство Visible с тегом сервера <% =%> в Framework 3.5

Я работал в проекте .NET Framework 4, используя серверные теги, такие как <% = what%>, чтобы установить видимость элементов управления runat = "server", например:

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

Это работает в Framework 4, но сейчас, пытаясь использовать это в проекте Framework 3.5, он, похоже, не работает. Это только фреймворк Framework 4? Есть ли самая крутая (и .aspx сторона) альтернатива настройке видимости из codebehind? Я пользуюсь мерзким

    MiId.Visible = MyVisiblePropertyOnCodeBehind

Заранее спасибо,

Том

[ИЗМЕНЕНО] РЕШЕНИЕ:

Спасибо за ваши комментарии, которые помогают мне понять мою проблему и ее решение!

Это была моя вина не только в одном.

В проекте VS2010 мы использовали <% # вместо <% =

Кроме того, я не заметил, что в проекте VS2010 мы использовали страницы, унаследованные не от «Page», а от класса CustomPage, который делал привязку автоматически, не замечая этого, и это заставляет меня думать, что это Framework 4.0 только особенность.

Как вы сказали здесь, если у вас есть следующая разметка:

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

Вы можете заставить это работать, добавляя следующее к codebehind:

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

Как я читал, этот DataBind () может снизить производительность приложения. У вас есть представление о том, сколько? Можно ли это понимать как «профессиональную» технику для больших проектов или, как вы думаете, ее следует избегать?

Мне нравится, как это делает разметку удобочитаемой и понятной в одном представлении, но я не хотел бы быть виновным в медленном коде из-за этого.

Ответы на вопрос(4)

Ваш ответ на вопрос