Мои классы - это DataModel, которая использует ID в качестве своего PK, и карта, которая также имеет ID в качестве PK. Карта имеет FK для DataModel (DataModelID).
У меня есть частичное представление, которое я использую из моего списка DataModel следующим образом:
<% foreach (var map in Model.Map)
{ %>
<% Html.RenderPartial("MapEdit", map); %>
<% } %>
Мой частичный вид MapEdit выглядит так:
Before: <%= Html.Encode(Model.ID) %>
<% using (Html.BeginForm()) {%>
<label for="ID">ID:</label>
<%= Html.TextBox("ID", Model.ID) %>
<%= Html.ValidationMessage("ID", "*") %>
<% } %>
Когда я запускаю это, я ожидаю увидеть ([] представляет текстовое поле):
Before: 4
ID: [ 4 ]
Before: 5
ID: [ 5 ]
etc...
Где каждое число является действительным идентификатором из записи. Что я на самом деле получаю:
Before: 4
ID: [ 10 ]
Before: 5
ID: [ 10 ]
10 в этом случае является идентификатором из DataModel! Я понятия не имею, откуда это исходит, потому что пошаговое выполнение кода показывает, что Model.ID имеет правильное значение - но в какой-то момент его заменяют.
Может кто-нибудь объяснить это?