Изменить URL-адрес страницы asp.net из кода позади - PullRequest
3 голосов
/ 23 сентября 2010

Я пытаюсь изменить URL-адрес текущей страницы aspx на другой URL-адрес одним нажатием кнопки.Используя Request.Url.AbsoluteUri я могу получить URL, но можно ли изменить?Если да, то какие действия он предпримет, я имею в виду, будет ли это новый запрос или сообщение назад.

Пожалуйста, дайте мне знать ваше мнение.

Спасибо, Мехул Маквана

Ответы [ 4 ]

5 голосов
/ 23 сентября 2010

Нет, невозможно изменить URL-адрес текущей страницы из-за кода.

Когда код выполняется, новый запрос или обратная передача уже выполняется, поэтому текущая страница больше не будет существоватькак только новый ответ будет завершен.

Когда страница, которая создается в данный момент, загружается в браузер, вместо URL текущей страницы будет использоваться ее URL.Этот URL уже был определен до запроса, поэтому вы также не можете его изменить.

Что вы можете сделать, это использовать метод Response.Redirect, чтобы вернуть страницу перенаправления в браузер с URL, который выхочу.Затем браузер отправит серверу еще один запрос на получение страницы с этим URL-адресом.

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

3 голосов
/ 23 сентября 2010

Вы можете использовать Response.Redirect() или Server.Transfer(), хотя я бы использовал первое, а не второе.

2 голосов
/ 23 сентября 2010

Подумайте об использовании jQuery или подобной библиотеки - это позволит вам изменить DOM страницы.Если вы можете создать новый URL только на сервере, рассмотрите возможность отправки ajax-запроса на сервер.Веб-метод вернет вам некоторый пользовательский объект, который будет содержать новый URL.Вы будете использовать данные, возвращаемые веб-методом, и заменять их с помощью jQuery или любой другой подобной библиотеки.

1 голос
/ 23 сентября 2010

это будет new request.

Вы можете попробовать с Response.Redirect или Server.Transfer

...