2011-12-09 55 views
9

我試過使用!Model.Any()它不起作用,因爲模型沒有擴展名任何。怎麼解決? 這是我的代碼片段。MVC3 Razor:如何檢查模型是否爲空

@model MyModel.Work 
    @if (!Model.Any()) 
    { 
     <script type="text/javascript"> 
      alert("Model empty"); 
     </script> 
    } 
    else 
    { 
     <script type="text/javascript"> 
       alert("Model exists"); 
     </script> 
    } 

回答

23

這聽起來像你對我的實例化模式,但要檢查,看它是否被填充。

我這樣做的標準方法是創建一個名爲Emptybool屬性,只給出一個get,然後返回檢查您需要查看是否沒有設置其他屬性。

假設你有一個客戶類的模型:

​​

現在您的模型,您只需撥打:

@model MyModel.Work 
@if (Model.Empty) 
{ 
    <script type="text/javascript"> 
     alert("Model empty"); 
    </script> 
} 
else 
{ 
    <script type="text/javascript"> 
      alert("Model exists"); 
    </script> 
} 
+2

+1這是非常好的 –

+0

mccow002 ..這是一個偉大的提示!非常感謝你! – MagB

+0

第一個腳本行給出「預期」;'「警告。 –

9

這個怎麼樣:

if(Model == null) 
{ 
} 
+3

@if(Model == null)不起作用。 – MagB

+1

那麼你的模型不是空的。調試它,看看它爲什麼不是空的。 –

+6

空!=空。一個空集合仍然是一個集合。 –

9

你可以試試這個:

@if (Model.Count == 0) 
{ 

} 
+0

@if(Model.Count()== 0)Count()之後缺少() – Eric

0

我有同樣的問題。我不知道它是否重要,但我使用MVC5。我忘了把任何東西從控制器發送到視圖。因爲我把「返回查看(myList);」 在我的控制器中,方法.Any()工作正常。