2014-02-26 44 views
0

在一個WebForm我有以下標籤:如何獲得通過URL發送的變量未知量 - C#

<a href="download.aspx?file0=test0&file1=test1.......></a> 

我不可能提前知道許多變量是如何做派。

在C#中,我試圖讓他們都:

int cpt=0; 
string[] pdfs = new string[]; 
while (Request["'file'.cpt"] != null) //<-----ERROR 
{ 
    pdfs[cpt] = Request['"file".cpt'] ; 
    cpt++; 
} 

不幸的是,我有以下錯誤:

在字符文字字符太多

誰能幫我解決這個問題 ? 感謝

+0

阿爾諾,如果您的鏈接的格式如下 ''這隻會工作 – roryok

回答

2

你的錯誤信息特別是由於該行:

pdfs[cpt] = Request['"file".cpt']; 

你應該換單,雙引號,這樣它看起來像:

pdfs[cpt] = Request["'file'.cpt"]; 

在C#中的字符串必須是用雙引號引用。單引號只能用於分隔字符。

2

您正在嘗試將cpt變量的當前值添加到"file"文字中,但這種方式不起作用。請嘗試以下操作:

Request[String.Format("file{0}", cpt)] 

順便說一句 - 這是可以做到更快:

var pdfs = Request.QueryString 
        .Keys 
        .Cast<String>() 
        .Where(key => key.StartsWith("file")) 
        .Select(key => Request.QueryString[key]) 
        .ToArray(); 
1

要檢索數目不詳的在你所描述的格式的變量,你需要做到這一點。

List<string> pdfs = new List<string>(); 
foreach(string k in Request.QueryString.Keys) 
{ 
    if (k.StartsWith("file")) 
     pdfs.Add(Request.QueryString[k]); 
}