переназначить значение параметру строки запроса
-
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 прийти на помощь?Разве в этом случае вам не следует обрабатывать изменение переменной объекта до рендеринга страницы?