2011-12-06 2 views
1

Je renvoie une liste d'entreprises dans mon code et j'ai l'obligation de définir le titre de la page comme premier nom de société. Je suis capable de le faire avec succès mais le problème apparaît quand la liste est vide. Le code déclenche une exception.Rechercher une liste vide dans une vue dans l'application MVC

J'utilise asp.net 4.0, cadre MvC3 et entité 4,1

@model List<% InvoiceSearchTool.Models.Invoices %> 

@{ 

    ViewBag.Title = Model.FirstOrDefault().Company; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
+1

Pourquoi voudriez-vous appeler la vue si la liste est nulle? Est-ce une vue Créer? – Maess

Répondre

3

Vous pouvez utiliser un ternary operator pour vérifier une valeur nulle avant de fixer la valeur:

Vérifiez si la liste est null:

ViewBag.Title = (Model != null) ? Model.FirstOrDefault().Company : ""; 

Vérifiez si la liste est vide:

ViewBag.Title = (Model.Count() > 0) ? Model.FirstOrDefault().Company : ""; 

(Ce serait sans doute grandement aider à accomplir cela dans le ViewModel si possible)

+0

ne fonctionne pas .... peut-être parce que le modèle n'est pas nul ici, il contient une liste vide :( – 14578446

+0

J'ai ajouté une autre possibilité à la réponse pour vérifier si la liste est vide –

+0

Je ferais un commentaire de Rionmonster l'accomplissant dans le viewmodel serait une meilleure approche – Hammerstein

Questions connexes