如何在一个视图中使用两个 IEnumerable 模型?
Posted
技术标签:
【中文标题】如何在一个视图中使用两个 IEnumerable 模型?【英文标题】:How to use two IEnumerable Model in one view? 【发布时间】:2020-12-01 07:57:07 【问题描述】:我尝试在一个视图中使用两个模型。这是我的模型代码:
模型“公告”
public partial class Announce
public int No get; set;
public string Announce_Subject get; set;
public string Announce_Context get; set;
public string Announce_Author get; set;
public Nullable<System.DateTime> Announce_Date get; set;
模型消息
public partial class Message
public int MessageId get; set;
public string MessageTo get; set;
public string MessageFrom get; set;
public string Text get; set;
两个模型的模型总数
public class Total
public IEnumerable<Announce> Announce1 get; set;
public IEnumerable<Message> Message get; set;
我的观点
@model DemoEmployee.Total
@foreach (var item in Model.Announce1)
<tr>
<td>
@html.ActionLink(item.Announce_Subject, "Details", "Announces", new id = item.No , null)
</td>
<td>
@Html.DisplayFor(modelItem => item.Announce_Author)
</td>
<td>
@Html.DisplayFor(modelItem => item.Announce_Date)
</td>
</tr>
@foreach (var item in Model.Message)
<tr>
<td>
@Html.DisplayFor(modelItem => item.MessageFrom)
</td>
<td>
@Html.ActionLink(item.Text, "Details", new id = item.MessageId )
</td>
<td>
@Html.ActionLink("Delete", "Delete", new id = item.MessageId )
</td>
</tr>
索引控制器
public ActionResult Index()
return View(db.Announce.ToList());
我不知道我的问题是什么。我收到了这个错误:
“传入字典的模型项的类型为‘System.Collections.Generic.List`1[DemoEmployee.Announce]’,但此字典需要‘System.Collections.Generic.IEnumerable`1[DemoEmployee.全部的]”
请帮帮我!
【问题讨论】:
【参考方案1】:由于您在视图中定义了@model DemoEmployee.Total
,您需要在return View()
中传递Total
的对象。
将DemoEmployee.Total
的对象传递给View(...)
而不是Announce
的列表。更新您的return
声明如下。
public ActionResult Index()
return View(new DemoEmployee.Total() Announce1 = db.Announce.ToList(), Message = new List<Message>() );
【讨论】:
以上是关于如何在一个视图中使用两个 IEnumerable 模型?的主要内容,如果未能解决你的问题,请参考以下文章
如何在html数据表视图中显示IEnumerable数据分组id?