我正在开发一个asp mvc 5网站。我有3个模型,是约会,咨询和联系。现在我想在一个名为userdetails的视图中显示这3个模型的所有细节。到目前为止我做了什么 创建了一个视图模型
public class AllServices
{
public List<Contact> Contacts { get; set; }
public List<Appointment> Appointments { get; set; }
public List<Consultation> Consultations { get; set; }
}
然后创建了控制器动作方法
public ActionResult userdetails()
{
AllServices services = new AllServices();
services.Appointments = dbcontext.Appointments.ToList();
services.Consultations = dbcontext.Consultations.ToList();
services.Contacts = dbcontext.Contacts.ToList();
return View(services);
}
并且在视野中我做了
@model List<Astrology.ViewModels.AllServices>
....
@foreach(var item in Model)
{
@item.Appointments
}
但是当我运行页面时,我发现了像这样的错误
传递到字典中的模型项的类型为&#39; Astrology.ViewModels.AllServices&#39;,但此字典需要类型为&#39; System.Collections.Generic.List`1 [Astrology]的模型项.ViewModels.AllServices]&#39;
有人可以帮助我。我坚持这个。
答案 0 :(得分:0)
错误告诉您,当您需要List of AllServices模型时,您只传递单个AllServices模型。您需要更改视图以期望一个模型或将单个模型放入列表中。
编辑(添加代码示例) 将您的控制器更改为以下内容:
public ActionResult userdetails()
{
List<AllServices> lservices = new List<AllServices>();
AllServices services = new AllServices();
services.Appointments = dbcontext.Appointments.ToList();
services.Consultations = dbcontext.Consultations.ToList();
services.Contacts = dbcontext.Contacts.ToList();
lservices.Add(services);
return View(lservices);
}