Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在同一MVC视图中显示单独的表_C#_Entity Framework_Model View Controller - Fatal编程技术网

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
}