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检查不能放在第一位。