Я работал в проекте .NET Framework 4, используя теги сервера, такие как <% = whatever% > , чтобы установить видимость элементов управления runat = "server", например:
  <div id="MyId" runat="server" visible="<%=MyVisiblePropertyOnCodeBehind %>" >
    Content
  </div>
Это работает на платформе 4, но теперь, пытаясь использовать это в проекте Framework 3.5, похоже, что это не работает. Является ли это только функцией Framework 4? Есть ли самая крутая (и .aspx сторона) альтернатива настройке видимости от codebehind? Я использую уродливый:
    MiId.Visible = MyVisiblePropertyOnCodeBehind
Спасибо заранее,
Tom
[EDITED] РЕШЕНИЕ:
Спасибо за ваши комментарии, которые заставляют меня понять мою проблему и решение!
Это была моя ошибка не только в одном.
В проекте VS2010 мы использовали <% # вместо <% =
Кроме того, я не заметил, что в проекте VS2010 мы использовали страницы, унаследованные не от "Страница", а из класса 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() может снизить производительность приложения. У вас есть представление о том, сколько? Можно ли это понимать как "профессиональную" технику, которая будет использоваться в крупных проектах, или вы думаете, что ее следует избегать?
Мне нравится, как он делает разметку доступной и удобной для понимания в одном представлении, но я бы не хотел быть виновным в медленном коде, потому что это.