2011-12-06 21 views
1

我要返回我的代碼中的公司列表,並要求將頁標題設置爲第一個公司名稱。我能夠成功地完成這項工作,但是當列表爲空時會出現問題。該代碼引發異常。檢查MVC應用程序視圖中的空列表

我使用asp.net 4.0,MVC3和Entity Framework 4.1

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

@{ 

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

爲什麼你會調用視圖如果列表爲空?這是創建視圖嗎? – Maess

回答

3

你可以使用一個ternary operator來設定值之前檢查空:

檢查列表是空:

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

檢查列表爲空:

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

(這可能會幫助很大,如果可能的視圖模型內做到這一點)

+0

不起作用....可能是因爲模型不爲空,它包含一個空列表:( – 14578446

+0

我增加了另一種可能性來回答檢查列表是否爲空 –

+0

我想第二個Rionmonster的評論完成它在視圖模型將是一個更好的方法。 – Hammerstein

相關問題