Передача Viewdata как члена из других данных просмотра в RenderPartial делает первый нулевой
-
04-07-2019 - |
Вопрос
Строго типизированный SearchViewData
имеет поле под названием «Цвета», которое, в свою очередь, является ColorViewData
.В моем /Colors.mvc/search
Я заполняю это viewData.Model.Colors
на основе заданных критериев поиска.Затем, основываясь на нескольких факторах, я визуализирую один из набора пользовательских элементов управления, которые могут отображать себя с помощью ColorViewData
.
Итак, в итоге я получу:
<%Html.RenderPartial("~/Views/Color/_ColorList.ascx", ViewData.Model.Colors);%>
Раньше это работало нормально, но после обновления до бета-версии 1 мой пользовательский элемент управления всегда заканчивается viewdata = null;
Предложения?
Решение
Вероятно, проблемы с перегрузкой.Вы можете вызвать RenderPartial(string, object, ViewDataDictionary), который делает все три параметра явными.
Мы планируем изменить одну вещь: если вы вызовете перегрузку RenderPartial(string, object), мы передадим текущий ViewDataDictionary в партиал.Мы не делаем этого в бета-версии, но, похоже, это очень распространенный сценарий, который сделает этот метод более удобным.
Другие советы
Заметил то же самое, я исправил это следующим образом, хотя я не уверен, что это «правильное» решение:
<% Html.RenderPartial("xxx", new ViewDataDictionary(ViewData.Model.Colors)); %>