2013-05-09 30 views
0

我正在處理一個asp.net mvc 3應用程序,並且我已經制作了幾個部分視圖,每個視圖負責渲染特定的邏輯。在我的一個視圖中,我使用的屬性可以爲null,但我不希望將null傳遞給@Html.DisplayFor(),並且爲用戶編寫更友好的用戶信息,以知道這些字段不會丟失,它們只是沒有任何內容分配給他們呢。檢查部分視圖內的模型屬性的空值

所以我試試這個:

<tr>   
      <td> 
       @if (!string.IsNullOrEmpty(Model[0][0].FieldValue)) 
       {    
        @Html.DisplayFor(Model => Model[0][0].FieldValue) 
       } 
      </td> 
      <td> 
       @Html.DisplayFor(Model => Model[1][0].FieldValue) 
      </td> 
     </tr> 

我沒有else子句,因爲寫在得到標有紅色的DisplayForModel =>if語句結果和以下消息:

名爲'模型'的局部變量不能在此範圍 中聲明,因爲它會給在'父級或當前'範圍中已使用的'模型'賦予不同的含義' 表示一些東西。

基本上我想我明白這個錯誤的含義,但是我不知道如何在這種情況下正確地檢查null。

+0

我可以看到這個局部視圖的代碼嗎? – 2013-05-09 06:01:46

回答

1

錯誤消息是由Model變量的重新定義引起的。嘗試

@Html.DisplayFor(x => x[0][0].FieldValue) 

您可能會發現this SO question有用的理解 「=>」 的thingie。