Вот код моего контроля позади:Кэширование Web UserControl по Propety не работает (! Grr)
<PartialCaching(60, Nothing, "UsrCtl_WebUserControl.CacheString", Nothing, True)> _
Partial Class UsrCtl_WebUserControl
Inherits System.Web.UI.UserControl
Private _CacheString As String
Public Property CacheString() As String
Get
Return _CacheString
End Get
Set(ByVal value As String)
_CacheString = value
End Set
End Property
End Class
Вот Разметка элемента управления:
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="WebUserControl.ascx.vb" Inherits="UsrCtl_WebUserControl" %>
<span>Control Generated <%=DateTime.Now%></span>
Он просто выводит текущее время.
Вот пользовательский элемент управления встроен в страницу:
<uc:wuc ID="wuc" runat="server" CacheString="A" />
А в другой странице:
<uc:wuc ID="wuc" runat="server" CacheString="B" />
Согласно документации, этот контроль должен поддерживать другой, 60 второй вариант кэшируется для каждого значения свойства CacheString.
Он не работает - он кэшируется в течение 60 секунд, но создается только одна кешированная копия независимо от того, что я вложил в свойство CacheString.
Кто-нибудь знает, что я делаю неправильно? - После 4 часов этого у меня не осталось ни волос, ни ногтей - пожалуйста, сохраните мой монитор из кирпича.
Привет Фил, Спасибо, но если вы читали мой вопрос, вы увидите, что я использую элементы управления на разных страницах, а не на той же странице. Мне нужно Shared = "True", поскольку это для кэширования нижнего колонтитула страницы - было бы мало смысла кэшировать нижний колонтитул страницы на странице за страницей! Я не вижу, что я делаю неправильно. Спасибо за попытку! – PapillonUK
@PapillonUK Тот же элемент управления на двух отдельных страницах - это то, как я его воспроизвел, но теперь я немного смущен - вы хотите, чтобы они были кешированы отдельно на каждой странице, но они оба находятся в общем нижнем колонтитуле? Можете ли вы поместить часть своей разметки страницы в свой вопрос? Мой демо-код находится по адресу http://cid-5e6d39865220496a.skydrive.live.com/self.aspx/StackOverflow/PartialCaching.zip – PhilPursglove
Весь код выше, теперь я добавил разметку элемента управления - он просто отображает текущее время , Это не полный код, я вытащил все, кроме голого мин. Я намерен использовать элемент управления для кеширования области нижнего колонтитула на многих страницах моего веб-сайта. Область нижнего колонтитула будет одинаковой на всех страницах, кроме одного небольшого аспекта, который я раскрываю как свойство элемента управления - следовательно, необходимо изменить кеш на свойство. Пробовал использовать другой идентификатор на разных страницах - та же проблема. Кэшировано в течение 60 секунд, но только одна кешированная версия, независимо от указанного значения свойства. – PapillonUK