Сохранение состояния сеанса ASP.NET PageViewState

Это то что я сделал

  1. Создана новая папка под Corelibrary.
  2. Назвал его "Адаптеры"
  3. В разделе "Адаптеры" создан новый файл класса.
  4. Назван файл класса "PageStateAdapter.cs"
  5. Расширение из класса PageAdapter в "PageStateAdapter.cs"
  6. Добавьте переопределение для GetStatePersister(), как показано ниже.

Код:

using System.Web.UI;
using System.Web.UI.Adapters;

namespace eRecruitCore.Adapters
{
   public class PageStateAdapter : PageAdapter
   {
       public override PageStatePersister GetStatePersister()
       {
           return new SessionPageStatePersister(this.Page);
       }
    }
 }
  1. Создан файл браузера в Web->App-Browsers
  2. В браузер добавлен следующий контент. Назван файл "Default.browser"

    <browsers>
    <browser refID="Default">
      <controlAdapters>
      <adapter controlType="System.Web.UI.Page" adapterType="Corelibrary.Adapters.PageStateAdapter" />
    </controlAdapters>
    <capabilities>
      <capability name="requiresControlStateInSession" value="true" />
    </capabilities>
    </browser>
    </browsers>
    
  3. Убедитесь, что атрибут adapType соответствует пространству имен класса, которое было создано для адаптера состояния страницы.

По какой-то странной причине этот фрагмент кода работает не только в Chrome. Когда я говорю, что не работает, я имею в виду, что страница загружается нормально, но состояние просмотра - это большой сумасшедший беспорядок. Однако в IE и Firefox состояние просмотра небольшое, и страница загружается быстрее.

Следующее, что я сделал, - загрузил страницу в Fiddler под разными пользовательскими агентами. Если пользовательский агент chrome, то возникает то же состояние беспорядка просмотра.

Я проверил код несколько раз, я написал пример сайта для тестирования. Это отлично работает на Chrome. Я действительно не уверен, где искать. Любая помощь по этому вопросу приветствуется.

1 ответ

Я исправил это. Для старой проблемы код очищал все адаптеры. Я модифицировал его так, чтобы починка очищала только те адаптеры, которые были нужны. Теперь это работает без проблем.

Другие вопросы по тегам