Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 视图中嵌套模型的ASP.net MVC DisplayName_Asp.net Mvc_Model_Controller - Fatal编程技术网

Asp.net mvc 视图中嵌套模型的ASP.net MVC DisplayName

Asp.net mvc 视图中嵌套模型的ASP.net MVC DisplayName,asp.net-mvc,model,controller,Asp.net Mvc,Model,Controller,我在ASP.net MVC项目中有一个视图,它与控制器(SubmissionController)和类(Submission)关联 在视图中,我使用以下命令显示类中的一些值: @Html.DisplayFor(Function(model) model.Created) 这非常有效,但我现在想要实现的是,能够获得嵌套在我上面引用的模型中的集合的显示名称 更清楚地说明这一点;我在视图中查看多个提交的单个提交(使用SubmissionController的详细信息功能)。每次提交都有许多照片,我希

我在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>
顺便说一下,我不想手动写入标题名称,它们必须来自模型。

答复 他的答案几乎就在那里,这里是解决方案

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

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

@Html.DisplayNameFor(函数(模型)model.Photos.Photo\u Size)
不起作用,因为
model.Photos
可能是一个
IEnumerable
并且没有Photo\u Size属性。您可以这样传递一个空的模型项:

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

等等。

碰巧这正是我需要做的!我必须将函数中的变量名更改为任意值,否则默认情况下它只会使用视图模型。至于MVC5,在这种情况下,您可能会得到一个错误,即您的DisplayNameFor调用不明确。因此,需要显式指定类型参数。在C#中类似于
@(Html.DisplayNameFor(model=>displayModel.Photo#u Size))
@Dim displayModel = new Photo()
@Html.DisplayNameFor(Function(displayModel) displayModel.Photo_Size)