Перенаправление ответа неправильно отправляет переменную во вторую форму

#c# #string #response.redirect

#c# #строка #response.redirect

Вопрос:

Я использую ответ.Перенаправление для отправки информации во вторую форму, большая часть которой представляет собой текст, записанный в поле ввода.

код для их отправки достаточно прост.

 Response.Redirect("secondwebform.aspx?Adress="   adress.Value);
  

в то время как переменная выглядит следующим образом

 Response.Redirect("secondwebform.aspx?StringToSend");
  

в моем втором webform.aspx.cs у меня есть код, который улавливает данные при загрузке страницы и автоматически вводит их в поле ввода.

 adress.Value = Request.QueryString["Adress"];
  

проблема возникает при попытке использовать строковую переменную и ввести ее также в поле ввода или текстовое поле.

мой код для этого выглядит следующим образом:

 string StringToUse = Request.QueryString["StringToSend"];
TextBox1.Text = StringtoUse;
  

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

Комментарии:

1. URL secondwebform.aspx?StringToSend -адрес не присваивает значение параметру запроса StringToSend , поэтому Request.QueryString["StringToSend"] будет пустой строкой. Вы намеревались установить для нее значение?

2. Я намерен получить ту же строку во второй форме и заполнить текстовое поле ее символами.

3. Кроме того, в моей строке действительно есть символы.

Ответ №1:

Обычно мы используем строку запроса пользователя для передачи идентификатора или очень маленьких данных.

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

Для вашего сценария вы хотите использовать состояние сеанса. Например,

Первая форма

 <%@ Page Language="C#" AutoEventWireup="true" 
   CodeBehind="FirstForm.aspx.cs" Inherits="DemoWebForm.FirstForm" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
    <script runat="server">
        protected void ForwardButton_Click(object sender, EventArgs e)
        {
            Session["Name"] = NameTextBox.Text;
            Response.Redirect("~/SecondForm.aspx");
        }
    </script>
    <form id="form1" runat="server">
        <h1>First Form</h1>
        <asp:TextBox runat="server" ID="NameTextBox" />
        <asp:Button ID="ForwardButton" runat="server"
            OnClick="ForwardButton_Click" Text="Forward Name to Second Form" />
    </form>
</body>
</html>
  

Вторая форма

 <%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="SecondForm.aspx.cs" Inherits="DemoWebForm.SecondForm" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<body>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            NameLabel.Text = Session["Name"] as string;
        }
    </script>
    <form id="form1" runat="server">
        <h1>Second Form</h1>
        <asp:Label runat="server" ID="NameLabel" />
    </form>
</body>
</html>