2016-06-23 12 views
2

Это, вероятно, простой вопрос, но я боюсь с returnurl в querystring. Я знаю, как вызвать returnurl в querystring в Response.Redirect, но я не уверен, как установить returnurl на определенный URL-адрес. Может ли кто-нибудь дать мне пример того, как это сделать?Задайте returnURL В QueryString

+0

что-то вроде [это] (http://www.dotnetperls.com/querystring) –

+1

Немного сбивает с толку, не могли бы вы быть более конкретным –

+0

Было бы странно, что вы хотел бы указать возвращаемый url в бэкэнд, когда это задача бэкэнда ответить на этот запрос url возврата .... –

ответ

1

У меня есть предложение для вас, я уверен, насколько это уместно для вашей ситуации.

Позвольте мне определить Статический Dictionary<string,string>, чтобы сохранить некоторые ключи и соответствующие URL-адреса. Поскольку он статически определен, вы можете получить к нему доступ со всех других страниц, эта переменная получит область применения. то есть.,

public static Dictionary<string, string> URLDictonary = new Dictionary<string, string>() 
             { 
              {"google","http://google.com/"}, 
              {"dotnet","http://www.dotnetperls.com/"},  
              {"querystring","http://www.dotnetperls.com/querystring"} 
             }; 

Так что вы можете прикрепить имя key с URL в строке запроса. Это может выглядеть следующим образом:

Response.Redirect("~/Somepage.aspx?returnURL=google"); 
// Which means you are passing the key as query string 

Теперь вы можете получить эту key в образце страницы и переориентировать на конкретную страницу на основе ключа следующим образом:

string returnURL = Request.QueryString["returnURL"]; 
if (returnURL != null) 
{ 
    Response.Redirect(URLDictonary[returnURL]); 
} 

Так как мы передаём google он будет перенаправить на соответствующее значение, т.е. "http://google.com/".

Примечание: Вы можете создать похожий словарь с вашими собственными ключами и адресами. Если он определен в другом классе затем использовать class_name.DictonaryName[querystring_value]

1

Вы можете сделать это в следующем:

var url = Request.Url.ToString(); 
var uri = String.Format("http://example.com?page={0}", url); 
Response.Redirect(uri); 

код довольно прямо вперед.

+2

Вы должны будете закодировать URL-адрес, прежде чем делать это, чтобы убедиться, что специальные символы обрабатываются правильно. – Chris