检查局部视图中模型属性的空值

时间:2013-05-09 05:53:48

标签: c# asp.net-mvc-3 razor

我正在开发一个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条款,因为编写if语句会导致Model =>中的DisplayFor标记为红色,并显示以下消息:

  

无法在此范围内声明名为“Model”的局部变量   因为它会给“模型”赋予不同的含义   用于“父级或当前”范围以表示某些内容。

基本上我认为我理解这个错误意味着什么但是我不知道如何在这种情况下正确检查null。

1 个答案:

答案 0 :(得分:1)

错误消息是由Model变量的重新定义引起的。尝试

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

您可能会发现this SO question对了解“=&gt;”非常有用的thingie。