Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
Asp.net mvc 4 传入字典的模型项的类型为';System.Data.Entity.DbSet_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 传入字典的模型项的类型为';System.Data.Entity.DbSet

Asp.net mvc 4 传入字典的模型项的类型为';System.Data.Entity.DbSet,asp.net-mvc-4,Asp.net Mvc 4,我正在学习MVC,因此我无法理解我相信的更简单的东西。我试图在同一个视图上保留列表和创建操作。按照建议,我创建了一个ViewModel,但它抛出了一个错误。我确信在我下面的代码中需要一些修复 传递到字典中的模型项的类型为“System.Data.Entity.DbSet`1[Entity.EmployeeVM]”,但此字典需要类型为“Entity.EmployeeVM”的模型项 我的模范班 public class Employee { public int ID { get; set;

我正在学习MVC,因此我无法理解我相信的更简单的东西。我试图在同一个视图上保留列表和创建操作。按照建议,我创建了一个ViewModel,但它抛出了一个错误。我确信在我下面的代码中需要一些修复

传递到字典中的模型项的类型为“System.Data.Entity.DbSet`1[Entity.EmployeeVM]”,但此字典需要类型为“Entity.EmployeeVM”的模型项

我的模范班

public class Employee
{
    public int ID { get; set; }

    public string Name { get; set; }

}
public class EmployeeVM
{
   public Employee Employee { get; set; }
   public List<Employee> Employees { get; set; }
}
我的观点模型课

public class Employee
{
    public int ID { get; set; }

    public string Name { get; set; }

}
public class EmployeeVM
{
   public Employee Employee { get; set; }
   public List<Employee> Employees { get; set; }
}
我的看法

@model ERP.Domain.Entity.EmployeeVM

<div class="jumbotron">
    @using (Html.BeginForm("Create", "MyController", FormMethod.Post))
    {

        <label>Name</label>
        <input id="txtName" type="text" name="Name" class="btn btn-default" />


        <input type="submit" value="Save" class="btn btn-primary" />
    }
</div>
<div>
    <table class="table table-hover">
        <tr>
            <th>  
              Name
            </th> 
        </tr>
        @foreach (var item in Model.Roles)
        {
            <tr>
                <td>@Html.ActionLink(item.Name, "Edit")
                </td>

            </tr>
        }
    </table>
</div>
@model ERP.Domain.Entity.EmployeeVM
@使用(Html.BeginForm(“Create”,“MyController”,FormMethod.Post))
{
名称
}
名称
@foreach(Model.Roles中的var项)
{
@Html.ActionLink(item.Name,“编辑”)
}

您的操作正在返回
IEnumerable
,而在您的视图中,您有model
ERP.Domain.Entity.EmployeeVM

在视图中更改视图的模型:

@model IEnumerable<ERP.Domain.Entity.EmployeeVM>
鉴于:

@model List<ERP.Domain.Entity.EmployeeVM>
@型号列表

这给了我一个新的错误,
EntityType'EmployeeVM'没有定义键。在此代码行定义此EntityType的键-'返回视图(repository.Employees.ToList())`您尚未在模型中定义key-in-model添加ID属性并用key-attributehi修饰它该错误已得到解决…现在我面临一个简单的错误…但它正在挠头寻找解决方案新的错误是-
传递到字典中的模型项的类型为“System.Collections.Generic.List
1[Entity.Employee],但此词典需要“System.Collections.Generic.List
1[Entity.EmployeeVM]”类型的模型项。
。我知道我需要更改此-
public ViewResult Index(){return View(repository.Employees.ToList());}
error表示所有视图定义了不同的模型,而传递的对象的类型不同
@model List<ERP.Domain.Entity.EmployeeVM>