MVC5 передает интерфейс редактору шаблонов - PullRequest
0 голосов
/ 15 октября 2018

Я работаю с 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 Folded и добавил представление со следующим кодом

@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]'.

...