У меня есть следующий редактор для шаблона:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<ContactDto>>" %>
<%@ Import Namespace="c2.bases.dto.structure"%>
<%
for (var i = 0; i < ViewData.Model.Count; i++)
{%>
<%=Html.EditorFor(x => x[i])%>
<%}
%>
Проблема в том, что он не генерирует правильный атрибут имени, он генерирует следующий атрибут имени для одного из элементов:
name="TrainingLookUpContainer.Contacts.[0].Surname"
Вы можете видеть, что есть дополнительное '.' символ после последних контактов и перед индексатором [0].
должно быть
name="TrainingLookUpContainer.Contacts[0].Surname"
Объект не становится связанным из-за этого дополнительного '.'.
Этот редактор вызывается с другой страницы, например:
<div style="background: #fff;height:100%">
<%= Html.EditorFor(x => x.TrainingLookUpContainer.Contacts, "TrainingCategory")%>
</div>
Я обнаружил, что эта статья говорит о том, что я все делаю правильно текст ссылки .
Я думал, что это может быть лямда, но я думаю, что это может быть ошибка из-за вложенности.
У меня есть обходной путь, где я передаю в Содержащий объект TrainingLookUpContainer, и все хорошо.
Кто-нибудь может предложить лучший способ привязки к списку?