2010-07-26 4 views
0

У меня есть страница A, B и C. На загрузке страницы C я использовал параметр строки запроса, чтобы отображать некоторые таблицы в зависимости от того, откуда она взялась, либо A, либо B. Page C имеет кнопку Отмена. Когда пользователь нажимает кнопку «Отмена», он должен проверить, откуда он пришел, и должен перенаправить на ту же страницу, я имею в виду либо A, либо B. Я совсем не уверен, как использовать строку запроса для перенаправления.Перенаправление страницы в зависимости от строки запроса

Пожалуйста, помогите мне!

Спасибо!

ответ

2

Вы можете использовать что-то вроде этого, чтобы перенаправить базу на строке запроса:

var pageToredirectTo = "default.aspx"; 

switch(Request.QueryString["param"]) { 
    case "a": 
     pageToredirectTo = "pageA.aspx"; 
     break; 
    case "b": 
     pageToredirectTo = "pageB.aspx"; 
     break; 
} 
Response.Redirect(pageToRedirectTo); 
+0

спасибо !! Все прошло отлично! :) – Ram

0

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

public class Default : Page 
{ 
    private readonly string VS_Bool_FromPageA = "VS_Bool_FromPageA"; 

    protected void Page_Load(object sender,EventArgs e) 
    { 
    if(!IsPostBack) 
    { 
     if(!string.IsNullOrEmpty(Request["frompageA"]) 
     { 
     bool fromA; 
     if(bool.TryParse(Request["frompageA"],out fromA) && fromA) 
      FromPageA = true; 
     else 
      FromPageA = false; 
     } 
    } 
    } 


    private bool FromPageA 
    { 
    get 
    { 
     if (ViewState[VS_Bool_FromPageA] != null) 
     { 
     return (bool)ViewState[VS_Bool_FromPageA]; 
     } 
     else 
     return false; 
    } 
    set 
    { 
     ViewState[VS_Bool_FromPageA] = value; 
    } 
    } 

    //if the user changed the value of the query string before hitting the cancel button 
    //your logic will stay consistent 
    protected void buttonCancel_Click(object sender,EventArgs e) 
    { 
    if(FromPageA) 
     Response.Redirect("~/pagea.aspx"); 
    else 
     Response.Redirect("~/pageb.aspx"); 
    } 
} 
Смежные вопросы