2012-06-27 50 views
0

我想将多个变量传递给其他网页。将多个变量传递给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);

但它不工作,我该怎么办?

+0

我搜索了但是找不到 – calypso

+0

这就是你之前的问题倒票的原因。 –

回答

4

最安全的方法是使用String.Format()瓦特第i个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

将它们连接起来是这样的:

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"]; 
    } 
+0

非常感谢它的工作。 – calypso

+0

如果它适合你,请接受答案。 – Arran

+2

请参阅下面的@ curt的回复。它是更安全和更实用的方式来实现相同的事情。这对安全性的影响很重要! – Andrew

0

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

设置的页面,你想传递的值要retrieve-值从到会话

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

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

在页面你喜欢这款..

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

您可以也通过ViewStateSession有多种不同的值传递与你现在在做什么:人们不会看到你的网址任何东西,不知道是什么在后台happend。当你传递一些“topsecret”数据时是很好的; P

相关问题