ASP.net ViewState - Даже когда отключено, некоторое состояние отображения существует. Почему?

Использование Eloquent и Carbon

Предположим, что ваша модель называется Flight.

Удалить записи старше 4 недель.

$deletedRows = App\Flight::where('created_at', '<', Carbon::now()->subWeeks(4))->delete();

Если вы хотите более точно указать дату, указав количество дней, используйте subDays() вместо subWeeks().

Подробнее о Углерод Сложение и вычитание здесь

8
задан TimLeung 5 January 2009 в 15:57
поделиться

5 ответов

Это могло быть средствами управления, которые используют ControlState. Любое управление, которое имеет состояние управления, проигнорирует Ваши настройки ViewState.

4
ответ дан 5 December 2019 в 10:05
поделиться

Это - состояние управления.

Если Вы действительно хотите избавиться от состояния отображения и controlstate, можно использовать этот код в коде - позади для страницы, или в любом классе, из которого позади происходит код -

class MyPage : Page {
    private class DummyPageStatePersister : PageStatePersister {
        public DummyPageStatePersister(Page p) : base(p) {}
        public override void Load() {}
        public override void Save() {}
    }
    private DummyPageStatePersister _PageStatePersister;
    protected override PageStatePersister PageStatePersister {
        get {
            if (_PageStatePersister == null)
                _PageStatePersister = new DummyPageStatePersister(this);
            return _PageStatePersister;
        }
    }

    // other stuff comes here
}

Будьте очень осторожны при выполнении этого, тем не менее, так как Вы нарушаете контракт со средствами управления. MSDN явно указывает, что состояние управления всегда доступно. На практике, однако, это работало на меня.

Править: Так как я был downvoted, мне нравится указывать снова: не делайте этого, если Вы не знаете точно, что Вы делаете. В моем случае почти целое приложение было записано в клиентском JavaScript, и на тех немногих occations, где обратные передачи произошли, я всегда использовал Запрос. Набор формы для получения значений. Не используйте средства управления серверной стороны ни для чего кроме простого рендеринга, если Вы делаете это.

8
ответ дан 5 December 2019 в 10:05
поделиться

Это - абсолютно фантастическая статья о ViewState при разработке в чтении ASP.NET его!

Помощник ASP.NET ViewState является также хорошим инструментом для наблюдения, что продолжается в Вашем ViewState

2
ответ дан 5 December 2019 в 10:05
поделиться

Эта статья немного стара, но к моему пониманию большинство вопросов является все еще актуальным:

  1. У Вас должен быть тег form серверной стороны () на Вашей странице ASPX, если Вы хотите использовать ViewState. Поле формы требуется так скрытое поле, которое содержит информацию о ViewState, может отправить назад на сервер. И, это должна быть форма серверной стороны, таким образом, платформа страницы ASP.NET может добавить скрытое поле, когда страница выполняется на сервере.
  2. Сама страница сохраняет приблизительно 20 байтов информации в ViewState, который она использует для распределения Возвращенных данных, и ViewState оценивает корректным средствам управления после обратной передачи. Так, даже если ViewState отключен для страницы или приложения, можно видеть несколько остающихся байтов в ViewState.
  3. В случаях, где страница не отправляет назад, можно устранить ViewState из страницы путем исключения серверного тега.

http://msdn.microsoft.com/en-us/library/ms972427.aspx

3
ответ дан 5 December 2019 в 10:05
поделиться

Controlstate может быть причинами. Состояние управления не может быть отключено. В ASP.NET 2.0 существует различие между данными, необходимыми, чтобы заставить управление работать (controlstate), и другие данные (состояние отображения)

И да некоторые средства управления не работают без controlstate. Если Вы хотите знать, какой вызывает его или что содержит состояние отображения, проверяют средство просмотра состояния отображения

0
ответ дан 5 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: