我已向名为RelatedImage的新闻小部件添加了一个自定义字段,我想在自定义新闻列表 MVC 模板中显示该字段。
注意:自定义字段是相关媒体(图片、视频、文件)字段,设置了“可以上传或选择多张图片”的限制。
我可以通过循环自定义字段来检索图像的 URL,如下所示:
@foreach (var relatedItem in item.Fields.RelatedImage)
{
<li>@relatedItem.Fields.MediaUrl</li>
}
上面的代码工作并呈现 URL。
像这样的代码输出正确的值:
@item.Fields.RelatedImage.Length
但是,当您将限制设置为“只能上传或选择 1 张图片”时,用于@item.Fields.RelatedImage
更改的模型因此上述代码会抛出异常,因为这些属性不存在。
我需要的是只为列表中的每个新闻项目渲染一张图片,但是当我切换到“只有一张图片...”限制模式时,我无法弄清楚模型的外观或如何获取持有它的属性。所以下面的代码不起作用:
@item.RelatedItem("RelatedImage").Fields.MediaUrl
所以现在对我来说是一个令人沮丧的问题:我如何知道传递给我的模板/视图的模型是什么?我尝试过输出各种GetType().ToString()
选项,但我反复得到的只是 ItemViewModel 这无济于事!
编辑 - 以下代码实际有效:
<img src="@Html.Raw(item.Fields.RelatedImage.Fields.MediaUrl)" />
但这令人沮丧地难以弄清楚。如何弄清楚 Type RelatedImage 是什么。属性 Fields 是动态类型的,这使事情变得更加棘手。