2009-09-27 4 views
1

Я хочу отправить строку на другую страницу с именем Reply.aspx, используя QueryString.Отправить данные через QueryString с помощью ASP.NET

Я написал этот код на первой странице, необходимо отправить текст Reply.aspx:

protected void FReplybtn_Click(object sender, EventArgs e) 
{ 
    String s = "Reply.aspx?"; 
    s += "Subject=" + FSubjectlbl.Text.ToString(); 
    Response.Redirect(s); 
} 

Я написал этот код на странице Reply.aspx:

RSubjectlbl.Text += Request.QueryString["Subject"]; 

Но этот подход ISN 't работает правильно и не отображает текст.

Что делать, чтобы решить эту проблему?

Благодаря

+0

, что код должен работать ... Какая часть пойдет не так? Правильно ли выполняется перенаправление? – ullmark

+0

да это правда !!! –

+0

Он что-нибудь показывает? Вы могли бы htmlencode его, чтобы его действительный запрос. Или вы можете кэшировать его в объекте сеанса, если он находится на том же сайте. –

ответ

0

это легко:

Первая страница:

string s = "~/ADMIN/Reply.aspx?"; 
s += "Subject=" + FSubjectlbl.Text; 
Response.Redirect(s); 

Вторая страница:

RSubjectlbl.Text = Request.QueryString["Subject"]; 
0

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

protected void FReplybtn_Click(object sender, EventArgs e) 
{ 
    String s = Page.ResolveClientUrl("~/ADMIN/Reply.aspx"); 
    s += "?Subject=" + Server.UrlEncode(FSubjectlbl.Text.ToString()); 
    Response.Redirect(s); 
} 

EDIT: -

void Page_Load(object sender, EventArgs e) 
{ 
    if(Request.QueryString.HasKeys()) 
    { 
     if(!string.IsNullOrEmpty(Request.QueryString["Subject"])) 
     { 
      RSubjectlbl.Text += Server.UrlDecode(Request.QueryString["Subject"]); 
     } 
    } 
} 

PS: - Server.UrlEncode также мотивационные в комментарии к этому вопросу.

Смежные вопросы