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

时间:2014-04-27 15:19:30

标签: asp.net input concatenation

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

有人可以解释一下原因吗?

for (int i = 2; i < 10; i++)
{        
    if ("SpecialValue" +i+.Value == null)
         break;
}

2 个答案:

答案 0 :(得分:0)

首先,在C#中,单引号用于文字字符,而不是字符串。 必须为字符串使用双引号。请参阅:What's the difference between double quotes and single quote in C#

其次,“SpecialValue”+ i +创建一个文字字符串:“SpecialValue2”,“SpecialValue3”等。

然后,您的if语句尝试访问文字字符串的Value属性:"SpecialValue2".Value。 String对象没有Value属性。

相反,您需要在Request.Form集合中传递文字字符串值:

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

请参阅:How to access html form input from asp.net code behind

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

答案 1 :(得分:0)

尝试这样做:

 for (int i = 2; i < 10; i++)
  {        
 if (String.IsNullOrEmpty(Request["SpecialValue" +i.ToString()]))
     break;

}

对此的推理是你不能在C#中连接字符串和整数(i),你需要先将整数转换为字符串。其次,您需要通过请求从变量中获取值,String.IsNullOrEmpty允许您确保它不为null或为空 - 如果有任何值则返回false。在您的情况下,如果它为null或为空它将返回true并转到破