Есть ли способ, чтобы изменить строки запроса не нарушая постбэк ASP.Net?

голоса
1

От чтения здесь и вокруг сети, я близко к предполагая, что ответ «нет», но ...

Скажем, у меня есть страница ASP.Net, что иногда имеет параметр строки запроса. Если страница имеет параметр строки запроса, я хочу, чтобы лишить его до, во время или после обратной передачи. На странице уже есть много на стороне клиента сценарий (чистый JavaScript и JQuery).

В качестве примера, скажем, я загружаю:

http://myPage.aspx?QS=ABC

Параметр QS необходимо контролировать то , что появляется на странице , когда она сначала загружает и устанавливается на странице , что «называет» его. myPage.aspxимеют элементы формы , которые должны быть заполнены и имеет кнопку отправки , что делает постбэк. Когда страница завершает постбэк, мне нужно возвращенный URL быть:

http://myPage.aspx

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

Любые идеи или лучшие практики?

PS - Есть ли что я могу сделать с собственностью Form.Action, что не нарушит поведение обратной передачи?

Задан 09/12/2008 в 16:44
источник пользователем
На других языках...                            


3 ответов

голоса
2

Я хотел бы использовать HttpModule для перехвата и переписать URL и запрос , как он вошел. Я не 100%, но я не считаю , что это имеет какое - либо воздействие с ViewState.

Это звучит (и выглядит) сложным, но на самом деле это довольно тривиально и открытой для тонного уточнения и расширения (как в .NET в целом).

Ответил 09/12/2008 в 17:42
источник пользователем

голоса
1

IAM не уверен, что это то, что вы ищете, но если правильно понимаю, что вы могли бы сделать это:

-он проверка загрузки страницы для значения QS, если его нет использовать скрытое поле ввода.

-Первые время загрузки страницы с QS, делать нормальную обработку и хранить значение QS в скрытом поле ввода.

-если не QS затем использовать скрытое значение входного

-после постбэк, вы могли бы перенаправить на той же странице, в этот момент вы могли бы пользователь Request.Form [], чтобы получить поле скрытого ввода, по-прежнему загружать данные правильно, но избавиться от QS.

это имело смысл в моей голове, я не уверен, что это имеет смысл сейчас, но я дам вам решать.

Ответил 09/12/2008 в 17:34
источник пользователем

голоса
1

Это, вероятно, плохая практика, но в этих случаях (и те, которые я просто нужно «сбросить» страницы), я просто делаю Response.Redirect на той же странице.

Ответил 09/12/2008 в 16:47
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more