0

我正在开发一个 asp.net mvc 3 应用程序,并且我制作了几个部分视图,每个部分视图负责呈现特定逻辑。在我的一个视图中,我使用可以为 null 的属性,但我不想将 null 传递给 the@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红色标记和以下消息:

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

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

4

1 回答 1

1

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

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

您可能会发现这个 SO 问题有助于理解“=>”的东西。

于 2013-05-09T06:10:49.570 回答