2013-04-16 1 views
0

Dans cette instruction conditionnelle, j'ai essayé la dernière partie afin d'essayer d'exécuter une section de code si ma collection de formulaires est vide.FormCollection Vérifier si Null

if ((myDT == null) || (myCollection.GetKey(0).ToString() == "heatSearch") || (myCollection == null)) 
{ 
    //some code here 
} 

Chaque fois que je lance le code et le formulaire de collecte est vide, à laquelle cette condition doit être vrai, plantage de mon application et je reçois cette erreur: index était hors de portée. Doit être non négatif et inférieur à la taille de la collection. Pour plus d'informations ... cette vérification est en cours dans un ActionResult appelé par un message AJAX. Le message est ce qui échoue et renvoie l'erreur à cette ligne affichée ici: <b> Source File: </b> c:\Users\D\Documents\Visual Studio 2012\Projects\TheMProject(1)\TheMProject\Models\HomeModel.cs<b> &nbsp;&nbsp; Line: </b> 936

La ligne 936 est celle avec le si.

+0

Quelle ligne dans votre code donne l'erreur? Ce n'est pas le 'si ', n'est-ce pas? –

+1

'AllKeys.ToString()' n'a pas beaucoup de sens. Testez-le: 'System.String []' –

+0

@Conrad Clark Oui, cela se passe sur la ligne contenant if. – HendPro12

Répondre

2

Fix it:

if ((myDT == null) || (myCollection == null) || (myCollection.GetKey(0).ToString() == "heatSearch")) 
{ 
    //some code here 
} 

Vous appelez myCollection.GetKey(0) avant le test si myCollection est nul.

+0

:(Toujours pas de succès – HendPro12

+0

Ok. Remplacer (myCollection == null) avec (myCollection.Count == 0) fonctionne correctement.Merci de remarquer que la vérification GetKey ne peut pas venir en premier. – HendPro12

0

Avez-vous essayé ...

public ActionResult MyAction(FormCollection f) 
{ 
    if (f.Count == 0) 
     { 
      Debug.WriteLine("Hello"); 
     } 

     return View(); 
} 
+0

Je viens d'essayer cela et toujours recevoir la même erreur. – HendPro12