переназначить значение параметру строки запроса

StackOverflow https://stackoverflow.com/questions/44999

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть параметр строки запроса «showall» в URL-адресе, этот параметр добавляется динамически при нажатии кнопки «Показать все/Показать страницы».

Мне нужна возможность переключать значение параметра строки запроса «showall» в зависимости от того, нажимает ли пользователь кнопку «Показать все/Показать страницы».

Я делаю несколько вложенных «если» и string.Replace() по URL-адресу, есть ли лучший способ?

Все манипуляции производятся на сервере.

п.с. Торан, хорошее предложение, однако МНЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬ ПАРАМЕТР URL-адреса из-за некоторых других проблем.

Это было полезно?

Решение

Просто чтобы уточнить ответ Торана:

Использовать:
<asp:HiddenField ID="ShowAll" Value="False" runat="server" />

Чтобы переключить свое состояние:

protected void ToggleState(object sender, EventArgs e)
{
    //parse string as boolean, invert, and convert back to string
    ShowAll.Value = (!Boolean.Parse(ShowAll.Value)).ToString();
}

Другие советы

Другой грязной альтернативой может быть просто использование скрытого ввода и включение/выключение его вместо манипулирования URL-адресом.

Было бы слишком сложно просто жестко запрограммировать значение в URL-адресе (я знаю, что это не слишком приятно) со значением по умолчанию или true, а затем просто

booleanVar = !booleanVar;

запускаться при каждой загрузке страницы?

По крайней мере, это избавит от необходимости использования вложенных if для управления URL-адресом.

Я не уверен, основываясь на вопросе, но разве не здесь HTTPHandlers прийти на помощь?Разве в этом случае вам не следует обрабатывать изменение переменной объекта до рендеринга страницы?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top