2013-09-30 46 views
3

使用MVC我將一個Projects列表傳遞給視圖。如果列表返回空顯示消息

@if (Model.Projects != null && Model.Projects.Count > 0) 
{ 
<fieldset> 
    <table class="items" summary="@T("This is a table of the delivery Runs in your application")"> 
     <colgroup> 
} 

else 
{ 
//no data available 
} 

Model.Projects.Count> 0是說:

操作>斜面被應用於類型 '方法組' 和 'INT'

回答

4

的操作數如何約

Model.Projects.Count() > 0

Model.Projects.Any() 

如果您使用ReSharper的,它會建議你Model.Projects.Any()

+0

噢,抱歉忘了這一點歡呼 – John

+1

你絕對應該使用'任何()',而不是'計數()'因爲你只有intereste d是否有*項目。在這種情況下,計算可能的大集合中的項目是不必要的。 –

+0

是啊改變它的任何()的歡呼 – John

3

計數是一個方法。你的代碼必須

Model.Projects.Count() 
+2

或更好的是,'Model.Projects.Any()' – haim770

+0

歡呼男人謝謝你的答覆 – John

4

你是治療Count就好像它是一個屬性。

這是一種方法。您需要撥打Count()。例如。

@if (Model.Projects != null && Model.Projects.Count() > 0) 
{ 
<fieldset> 
    <table class="items" summary="@T("This is a table of the delivery Runs in your application")"> 
     <colgroup> 
} 
1

您在計數後缺少括號。 Count()是一種方法,不是財產,所以你的代碼應該是:

@if (Model.Projects != null && Model.Projects.Count() > 0) 
{ 
    <fieldset> 
     <table class="items" summary="@T("This is a table of the delivery Runs in your application")"> 
     <colgroup> 
} 

但看到你只關注是否有任何元素Model.Projects,而不是有多少,而不是

Model.Projects.Count() > 0 

你可以使用

Model.Projects.Any()