C# 在同一MVC视图中显示单独的表
我用实体创建了两个不同的表。 代码如下所示:C# 在同一MVC视图中显示单独的表,c#,entity-framework,model-view-controller,C#,Entity Framework,Model View Controller,我用实体创建了两个不同的表。 代码如下所示: public class Frisorer { public int Id { get; set; } public string Name { get; set; } public List<Scheman> Schema { get; set; } } public class Scheman { public int Id { get;
public class Frisorer
{
public int Id { get; set; }
public string Name { get; set; }
public List<Scheman> Schema { get; set; }
}
public class Scheman
{
public int Id { get; set; }
public DateTime Schemat { get; set; }
public virtual Frisorer frisorer { get; set; }
}
我创建了一个视图,其中我选择BigViewModel作为强类型,列表作为脚手架。
获取此错误:
传递到字典中的模型项的类型为“MVCAPApplication3.Models.BigViewModel”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[MVCAPApplication3.Models.BigViewModel]”的模型项。创建第三个类,某种ViewModel/Wrapper,它将封装您需要的所有内容。然后在视图中引用它。您只需将视图中的模型从
@model IEnumerable
更改为@model BigViewModel
,然后迭代Frisorer
和Scheman
,如下所示:
@model BigViewModel
<ul>
@foreach(var item in Model.Frisorer)
{
<li>@item.Id - @item.Name</li>
}
</ul>
<ul>
@foreach(var item in Model.Scheman)
{
<li>@item.Id - @item.Schemat</li>
}
</ul>
@model BigViewModel
@foreach(Model.Frisorer中的var项)
{
- @item.Id-@item.Name
}
@foreach(Model.Scheman中的var项)
{
- @item.Id-@item.Schemat
}
您将获得异常,因为当视图需要一个BigViewModel
集合时,您正在向视图传递一个对象
尝试将视图中的modelbinding更改为:@model BigViewModel
而不是@model IEnumerable
,然后在模型中迭代集合:
@foreach(var frisor in Model.Frisorer)
{
//do stuff
}
@foreach(var schema in Model.Scheman)
{
//do stuff
}
你介意在回答中告诉我怎么做吗?我一直在网上查看,但我看到的大多数网站都要求我更改所有内容。您好@biffbaffoff,如何在同一个表中显示这两个表。?。可能吗?
public ActionResult hopp()
{
BigViewModel bv = new BigViewModel();
bv.Frisorer = (from o in cont.Frisorer select o).ToList();
bv.Scheman = (from or in cont.Scheman select or).ToList();
return View(bv);
}
@model BigViewModel
<ul>
@foreach(var item in Model.Frisorer)
{
<li>@item.Id - @item.Name</li>
}
</ul>
<ul>
@foreach(var item in Model.Scheman)
{
<li>@item.Id - @item.Schemat</li>
}
</ul>
@foreach(var frisor in Model.Frisorer)
{
//do stuff
}
@foreach(var schema in Model.Scheman)
{
//do stuff
}