Передача Viewdata как члена из других данных просмотра в RenderPartial делает первый нулевой

StackOverflow https://stackoverflow.com/questions/233261

  •  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)); %>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top