0

我的 ASP.net MVC 项目中有一个视图,它与控制器 (SubmissionController) 和类 (Submission) 相关联。

在视图中,我使用以下方法显示类中的一些值:

@Html.DisplayFor(Function(model) model.Created)

这完美地工作,但我现在想要实现的是能够获得嵌套在我上面引用的模型中的集合的显示名称。

使这一点更清楚;我正在视图中查看多个提交的单个提交(使用 SubmissionController 的详细信息功能)。每个提交都有许多照片,我想在提交详细信息视图中显示这些照片以及提交详细信息本身。

为了显示照片,我有以下代码创建一张照片表......

            <tbody>
            @For Each item In Model.Photos
                Dim currentItem = item
                @<tr>
                    <td>
                        @Html.DisplayFor(Function(modelItem) currentItem.Photo_ID)
                    </td>
                    <td>
                        @Html.DisplayFor(Function(modelItem) currentItem.Photo_Status1.Value)
                    </td>
                    <td>
                        @Html.DisplayFor(Function(modelItem) currentItem.Photo_Size)
                    </td>
                    <td>
                        @Html.DisplayFor(Function(modelItem) currentItem.Photo_Taken)
                    </td>
                </tr>
            Next
        </tbody>

虽然未经测试,但我相信上面的代码应该可以正常工作。

考虑到这一点,我到底如何获得 Photo 字段/属性的 DisplayNameFor 值?

这显然是行不通的!

@Html.DisplayNameFor(Function(model) model.Photos.Photo_Size)

顺便说一句,我不想​​手动写入标题名称,它们必须来自模型。

回答

DigitalD的答案几乎就在那里,这是解决方案。

@Dim photoModel = New Photo()
@Html.DisplayNameFor(Function(photoModelx) photoModel.Photo_ID)
4

2 回答 2

1

@Html.DisplayNameFor(Function(model) model.Photos.Photo_Size)将不起作用,因为model.Photos它可能IEnumerable没有 Photo_Size 属性。你可能会像这样传递一个空的模型项:

@Dim displayModel = new Photo()
@Html.DisplayNameFor(Function(displayModel) displayModel.Photo_Size)

等等

于 2012-11-20T17:07:30.400 回答
0

如果我理解正确,您正在尝试获取所显示字段的名称(“已拍摄照片”、“照片尺寸”等)?如果是这种情况,我建议使用 DataAnnotations 和 LabelFor(item=>item.Field)。我相信这会给你你正在寻找的东西。

于 2012-11-20T16:33:30.407 回答