我正在使用MVC5 EF6.1,在那里我有一个表,该表包含20个实现相同接口的字段
public interface ITestAttribute
{
int Id { get; set; }
string Name { get; set; }
}
// EF entity, there are 20 models like this, for example, TestLocation: ITestAttribute
public class TestActivity : ITestAttribute
{
public int Id { get; set; }
public string Name { get; set; }
}
// EF entity
public class TestTable
{
public int Id { get; set; }
// There are 20 different fields
public List<TestActivity> TestActivities { get; set; }
}
在Razor视图上,我想为实现相同界面的那20个字段调用“编辑器模板”,这是因为我不想为每个属性创建20个自定义字段
@model im.DAL.TestTable
<p>Id: @Model.Id</p>
<p>@Html.EditorFor(model => model.TestActivities, "TestCtrl") </p>
<p>@Html.EditorFor(model => model.TestLocations, "TestCtrl") </p>
在Razor视图上,我需要EditorTemplate,在Shared折叠后创建文件夹,并使用以下代码添加视图
@model List<im.DAL.ITestAttribute>
@foreach (var item in Model)
{
<p>@item.Name</p>
}
但是我收到以下错误
传递到字典中的模型项是类型 “ System.Collections.Generic.List
1[im.DAL.TestActivity]', but this dictionary requires a model item of type 'System.Collections.Generic.List
1 [im.DAL.ITestAttribute]”。