在网络表单中,我有以下标记:
<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 :(得分:1)
您的错误消息具体归因于以下行:
pdfs[cpt] = Request['"file".cpt'];
您应该交换单引号和双引号,使其看起来像:
pdfs[cpt] = Request["'file'.cpt"];
在C#中,必须使用双引号引用字符串。单引号只能用于分隔字符。
答案 1 :(得分:1)
您正在尝试将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();
答案 2 :(得分:0)
要以您描述的格式检索未知数量的变量,您需要执行此操作。
List<string> pdfs = new List<string>();
foreach(string k in Request.QueryString.Keys)
{
if (k.StartsWith("file"))
pdfs.Add(Request.QueryString[k]);
}