我在ASP表单的输入ID上使用C#。
id
名称为:SpecialValue
。我还使用JavaScript动态添加更多值(SpecialValue2
,SpecialValue3
等等)。在尝试从变量中读取数据时,我在这个连接示例中遇到错误。
有人可以解释一下原因吗?
for (int i = 2; i < 10; i++)
{
if ("SpecialValue" +i+.Value == null)
break;
}
答案 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并转到破