2012-06-27 188 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

相關問題