2013-05-09 95 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。