C# FormCollection检查是否为Null
在这个条件语句中,我尝试了最后一部分,以便在表单集合为空时尝试并执行一段代码C# FormCollection检查是否为Null,c#,asp.net-mvc-4,formcollection,C#,Asp.net Mvc 4,Formcollection,在这个条件语句中,我尝试了最后一部分,以便在表单集合为空时尝试并执行一段代码 if ((myDT == null) || (myCollection.GetKey(0).ToString() == "heatSearch") || (myCollection == null)) { //some code here } 每次我运行代码并且表单集合为空时(此时此条件应为真),我的应用程序就会崩溃,我收到以下错误:索引超出范围。必须为非负数且小于集合的大小 更多信息…这个检查是在一个AJA
if ((myDT == null) || (myCollection.GetKey(0).ToString() == "heatSearch") || (myCollection == null))
{
//some code here
}
每次我运行代码并且表单集合为空时(此时此条件应为真),我的应用程序就会崩溃,我收到以下错误:索引超出范围。必须为非负数且小于集合的大小
更多信息…这个检查是在一个AJAX帖子调用的ActionResult中执行的。post失败并返回错误,如下所示:源文件:c:\Users\D\Documents\visualstudio 2012\Projects\TheMProject(1)\TheMProject\Models\HomeModel.cs行:936
第936行是带有if的行。您是否尝试过
public ActionResult MyAction(FormCollection f)
{
if (f.Count == 0)
{
Debug.WriteLine("Hello");
}
return View();
}
修复它:
if ((myDT == null) || (myCollection == null) || (myCollection.GetKey(0).ToString() == "heatSearch"))
{
//some code here
}
如果
myCollection
为空,则在测试前调用myCollection.GetKey(0)
。代码中的哪一行给出了错误?它不是如果一个,是吗?AllKeys.ToString()
没有多大意义。测试它:System.String[]
@Conrad Clark是的,它发生在包含if的行上。@John Willemse是的,这是一个输入错误对不起,但现在这是一个完全不同的代码行。。。现在得到这个错误是有意义的。将(myCollection==null)替换为(myCollection.Count==0)可以正常工作。感谢您指出GetKey检查不能放在第一位。