我想将多个变量传递给其他网页。
我试试这段代码
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);
但它不起作用我该怎么办?
答案 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)
你也可以通过ViewState
或Session
传递价值与现在你所做的不同:人们不会在你的网址中看到任何内容,也不知道后端发生了什么。传递一些“topsecret”数据时很好; P