将多个变量传递给asp.net中的另一个页面

时间:2012-06-27 10:06:35

标签: c# asp.net

我想将多个变量传递给其他网页。

我试试这段代码

string adi = TaskGridView.SelectedRow.Cells[3].Text;

string soyadi = TaskGridView.SelectedRow.Cells[3].Text;

Response.Redirect("Default2.aspx?adi=" + adi);

Response.Redirect("Default2.aspx?soyadi=" + adi);

但它不起作用我该怎么办?

4 个答案:

答案 0 :(得分:4)

最安全的方法是将String.Format()Server.UrlEncode()

一起使用
Response.Redirect(String.Format("Default2.aspx?adi={0}&soyadi={1}", Server.UrlEncode(adi), Server.UrlEncode(soyadi)));

如果值中有&符号(&),这将确保不会破坏查询字符串值。

然后在Default2.aspx上,您可以访问以下值:

Server.UrlDecode(Request.QueryString["adi"]);

答案 1 :(得分:1)

将它们连接起来:

Response.Redirect("Default2.aspx?adi=" + adi + "&soyadi=" + soyadi);

传递查询字符串参数时,请使用页面名称后面的?符号,如果要添加多个参数,请使用&符号分隔它们

在消费页面中:

    protected void Page_Load(object sender, EventArgs e)
    {
        var adi = this.Request.QueryString["adi"];
        var soyadi = this.Request.QueryString["soyadi"];
    }

答案 2 :(得分:0)

您还可以使用会话将值从一个页面传递到另一个页面

在页面中设置要将值传入会话

的值
Session["adi"] = TaskGridView.SelectedRow.Cells[3].Text;

Session["soyadi"] = TaskGridView.SelectedRow.Cells[3].Text;

在您要检索的页面中 - 您确实喜欢这个..

string adi=(string)(Session["adi"]);
string soyadi=(string)(Session["soyadi"]);

答案 3 :(得分:0)

你也可以通过ViewStateSession传递价值与现在你所做的不同:人们不会在你的网址中看到任何内容,也不知道后端发生了什么。传递一些“topsecret”数据时很好; P