У меня есть строго -типизированное частичное представление, модель которого содержит свойство с тем же именем, что и модель представления родительской страницы. По какой-то причине механизм рендеринга рендерит значение модели родительского представления, а не ожидаемое значение (ну, по крайней мере, то значение, которое я ожидаю!)
Извлечение модели представления родительской страницы:
public class ParentPageViewModel
{
public int Id { get; set; } // problem property
...
public IEnumerable<ChildViewModel> Children { get; set; }
}
Извлечение модели просмотра дочерней страницы:
public class ChildViewModel
{
public int Id { get; set; } // problem property
...
}
Извлечение родительской страницы (Razor):
@model ParentPageViewModel
...
@foreach (var item in Model.Children)
{
@Html.Partial("MyPartialView", item)
}
...
Извлечение частичного представления:
@model ChildViewModel
...
<form...>
@Html.HiddenFor(m => m.Id) // problem here - get ParentPageViewModel.ID not ChildViewModel.Id
</form>
...
Таким образом, в основном в моем отображаемом выводе мое скрытое поле имеет значение элемента модели родительского представления, а НЕ значение, переданное частичному представлению. Это определенно вызвано именем, поскольку изменение имени @ChildViewModel.Id@ на что-то вроде @ChildViewModel.ChildId@ заставляет его работать должным образом. Интересно, что при проверке значений модели представления в отладчике я вижу правильные значения; это только визуализированный вывод, который неверен.
Есть ли способ обойти это или «правильный» способ сделать то, что я пытаюсь сделать (Я отображаю мини-формы в таблице для проверки/публикации обновлений строк таблицы ajax)
Спасибо,
Тим