Полностью удалите ViewState для определенных страниц

У меня есть сайт, что функции некоторые страницы, которые не требуют никакой функциональности обратной передачи. Они просто отображают статический HTML и даже не имеют никакого связанного кода. Однако, так как у Ведущего устройства Page есть a <form runat="server"> тег, который переносит все ContentPlaceHolders, получающийся HTML всегда содержит поле ViewState, т.е.:

<input
  type="hidden"
  id="__VIEWSTATE"
  value="/wEPDwUKMjEwNDQyMTMxM2Rk0XhpfvawD3g+fsmZqmeRoPnb9kI="
/>

Править: Я попробовал оба варианта установки EnableViewState на уровне страницы без удачи вообще:

<%@ Page Language="C#" EnableViewState="false" %>
<%@ Page Language="C#" EnableViewState="true" %>

Я понимаю, это при дешифровании, это значение input поле соответствует <form> тег, который я не могу удалить, потому что это находится на моей основной странице. Однако я все еще хотел бы удалить поле ViewState для страниц, которые только отображают статический HTML. Действительно ли это возможно?

16
задан Kerido 12 March 2010 в 13:45
поделиться

3 ответа

Вы можете переопределить рендеринг и вырезать его с помощью регулярного выражения.

Образец по запросу. (NB: накладные расходы на это почти наверняка будут больше, чем любая возможная выгода!)

[редактировать: эта функция также была полезна для удаления всех скрытых полей ввода для использование вывода HTML как документа Word путем изменения MIMEType и расширения файла]

protected override void Render(HtmlTextWriter output)
{
    StringWriter stringWriter = new StringWriter();

    HtmlTextWriter textWriter = new HtmlTextWriter(stringWriter);
    base.Render(textWriter);

    textWriter.Close();

    string strOutput = stringWriter.GetStringBuilder().ToString();

    strOutput = Regex.Replace(strOutput, "<input[^>]*id=\"__VIEWSTATE\"[^>]*>", "", RegexOptions.Singleline);

    output.Write(strOutput);
}
23
ответ дан 30 November 2019 в 15:38
поделиться

В директиве <% @page ... вверху страницы добавьте EnableViewState = "False". Это предотвратит ViewState для этой конкретной страницы.

4
ответ дан 30 November 2019 в 15:38
поделиться
2
ответ дан 30 November 2019 в 15:38
поделиться
Другие вопросы по тегам:

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