C# 如何在视图中显示IEnumerable?
我正在为产品做评论部分,在显示评论视图时遇到一些问题。我从两个模型中创建了一个模型,以便在一个视图中显示它们,但我将IEnumerable显示为列表的方式给我带来了一个错误。如何修改代码以使其正常工作 模型 看法C# 如何在视图中显示IEnumerable?,c#,html,asp.net-mvc,razor,ienumerable,C#,Html,Asp.net Mvc,Razor,Ienumerable,我正在为产品做评论部分,在显示评论视图时遇到一些问题。我从两个模型中创建了一个模型,以便在一个视图中显示它们,但我将IEnumerable显示为列表的方式给我带来了一个错误。如何修改代码以使其正常工作 模型 看法 @model Database.Models.DetailsViewModel @DisplayFor(x=>x.Comments.DateComment)//在“IEnumerable”中获取错误 @Html.DisplayFor(x=>x.Comments.Comment)//不
@model Database.Models.DetailsViewModel
@DisplayFor(x=>x.Comments.DateComment)//在“IEnumerable”中获取错误
@Html.DisplayFor(x=>x.Comments.Comment)//不包含“Comment”的定义
我想得到这样的东西:
@Html.DisplayFor(x => x.Comments)
它将循环遍历它们,并使用DisplayTemplate渲染每一个。您可以使用
foreach
循环来实现您的功能。foreach循环将迭代您的IEnumerable
,并显示列表中的每个元素。具体到您的情况,您可以:
<ul>
@foreach(var comment in Model.Comments)
{
<li>@comment.DateComment</li>
<li>@comment.Comment</li>
}
<ul>
@foreach(Model.Comments中的var注释)
{
- @comment.DateComment
- @评论,评论
}
您需要一个foreach
。foreach语句无法对“DetailsViewModel”类型的变量进行操作,因为“DetailsViewModel”不包含“GetEnumerator”的公共实例定义。它返回了一些奇怪的信息System.Data.Entity.DynamicProxies.Product_1F161BFA07EF87380337F5397E9B83A40B176F245617AD31ACF72F5F0598D1BF
为注释模型创建显示模板而不是注释ID,正如回答的第一句话所表明的那样,请在评论之前使用@
Model.DetailsViewModel.Comments
beModel.Comments
?是的,它应该是Model.Comments
ty需要帮助,它为我解决了问题
@model Database.Models.DetailsViewModel
<ul>
@Html.DisplayFor(x => x.Comments.DateComment) //getting error here 'IEnumerable<Comments>'
@Html.DisplayFor(x => x.Comments.Comment) // does not containt definiton for 'Comment'
<ul>
@Html.DisplayFor(x => x.Comments)
<ul>
@foreach(var comment in Model.Comments)
{
<li>@comment.DateComment</li>
<li>@comment.Comment</li>
}
<ul>