Вложенный редактор для TemplateName
У меня есть это ViewModel
public EmployerViewModel
{
public List<EmployerHelper> Employers { get; set; }
}
EmployerHelper
{
public long ID { get; set; }
//...
public List<WageHelper> { get; set; }
}
в ViewEmployers.cshtml
:
@Html.EditorFor(x => x.Employers)
в EditorTemplates\EmployerHelper.cshtml
Я имею:
<input type="hidden" asp-for="ID" />
@Html.EditorFor(x => x.Wages, "EmployerWageHelper")
Однако, когда я пытаюсь запустить эту настройку, я получаю:
InvalidOperationException: элемент модели, передаваемый в ViewDataDictionary, имеет тип 'System.Collections.Generic.List`1[...ViewModels.Helper.WageHelper]', но для этого экземпляра ViewDataDictionary требуется элемент модели типа '...ViewModels.Helper.WageHelper.
Вопрос в том, почему первый EditorFor
работает как положено, т.е. List<EmployerHelper>
к EditorTemplate
один за раз. Тем не менее, второй EditorFor
проходит весь List
из WageHelper
к EditorTemplate
вместо одного за раз, как и ожидалось. Что я упустил?
Когда я делаю EditorFor(x => Wages)
(без template
имя) работает нормально. Тем не менее, я не могу использовать это, потому что есть другой template
за WageHelper
используется для другого метода. Я неправильно понимаю, как templateName
override
из EditorFor
работает или это какая-то ошибка в Razor
?
(На данный момент я должен был создать EmployerWageHelper
который является дубликатом WageHelper
чтобы обойти эту проблему.)