Вы наклоняетесь. < % = %> запишет строку непосредственно в ответный поток, который происходит после того, как управление сервером создается. См. это сообщение для объяснения.
Так или codebehind или < % # + связывающий с данными как Zachary предлагает.
Как продолжение моего собственного вопроса, я обнаружил, что то, что я действительно хотел, должно было использовать Выражения ASP.NET с помощью < синтаксис $ %, начиная с того, что я хотел сделать, был помещен в локализованное содержание.
Это может быть, не покончили, по-видимому, никакая дополнительная обработка на стороне управления сервером.
<cc1:customControl runat="server" Title='<%$ Resouces: ResourceFile, ContentKey %>' >
more content and controls
</cc1:customControl>
Это работает просто великолепно.
Попытайтесь использовать синтаксис привязки данных: <%# PagePropertyValue %>
Чтобы связывать значение свойства работало правильно, как предложено, у Вас будет это в aspx или ascx файле:
<cc1:customControl runat="server" Title='<%# PagePropertyValue %>' >
more content
</cc1:customControl>
необходимо будет затем на самом деле связать данные на странице, которая необходимо добавить это в Вас код позади файла (код в C#)
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}
Тот способ, которым это свяжет данные в Вашем ascx или aspx файле.
Обратите внимание, что это относится к атрибутам управления. При использовании < % = синтаксис вне атрибутов управления, что означает, что где-нибудь еще на странице синтаксис работает должным образом. Так это <% = GetCapitalUserName ()%> вызовет правильный метод и вставит результат вызова на страницу.