Asp.net 在表单输入id上连接,在C中不起作用#

Asp.net 在表单输入id上连接,在C中不起作用#,asp.net,input,concatenation,Asp.net,Input,Concatenation,我在ASP表单的输入id上使用C#。 id名称是:SpecialValue。我还使用JavaScript动态添加更多值(SpecialValue2,SpecialValue3等等)。当尝试读取变量时,我在这个连接示例中遇到了一个错误 有人能解释一下原因吗 for (int i = 2; i < 10; i++) { if ("SpecialValue" +i+.Value == null) break; } for(int i=2;i

我在ASP表单的输入id上使用C#。
id
名称是:
SpecialValue
。我还使用JavaScript动态添加更多值(
SpecialValue2
SpecialValue3
等等)。当尝试读取变量时,我在这个连接示例中遇到了一个错误

有人能解释一下原因吗

for (int i = 2; i < 10; i++)
{        
    if ("SpecialValue" +i+.Value == null)
         break;
}
for(int i=2;i<10;i++)
{        
if(“SpecialValue”+i+.Value==null)
打破
}
首先,在C#中,单引号用于文字字符,而不是字符串。必须对字符串使用双引号。见:

其次,“SpecialValue”+i+创建一个文本字符串:“SpecialValue 2”、“SpecialValue 3”等

然后,if语句尝试访问文本字符串的Value属性:
“SpecialValue2”.Value
。字符串对象没有值属性

相反,您需要在
请求中传递文本字符串值。表单
集合:

if (String.IsNullOrWhiteSpace(Request.Form["SpecialValue" + i.ToString()]))
    break;
见:

另外,请注意使用了
String.IsNullOrWhiteSpace
,如果值为null,“.”或“.”,则会返回true

请尝试以下方法:

 for (int i = 2; i < 10; i++)
  {        
 if (String.IsNullOrEmpty(Request["SpecialValue" +i.ToString()]))
     break;
for(int i=2;i<10;i++)
{        
if(String.IsNullOrEmpty(请求[“SpecialValue”+i.ToString()]))
打破
}


原因是不能在C#中包含字符串和整数(i),需要先将整数转换为字符串。其次,您需要通过请求和字符串从变量中获取值。IsNullOrEmpty允许您确保它不为null或为空,如果其中有任何值,则返回false。在您的情况下,如果为null或为空,则返回true并进入中断状态

,如果允许您更改表单,则可以将所有值的名称设置为相同。输入名称可以全部为“SpecialValue”。然后,
Request.Form.GetValues(“SpecialValue”)
将返回一个可以循环使用的值数组。不要发布甚至不编译的代码。