У меня есть строго типизированное частичное представление, которое принимает ProductImage, и когда оно отображается, я также хотел бы предоставить ему некоторые дополнительные ViewData, которые я динамически создаю на содержащей странице. Как я могу передать и мой строго типизированный объект, и мой пользовательский ViewData в частичное представление с помощью вызова RenderPartial?
var index = 0;
foreach (var image in Model.Images.OrderBy(p => p.Order))
{
Html.RenderPartial("ProductImageForm", image); // < Pass 'index' to partial
index++;
}
c#
asp.net
asp.net-mvc
asp.net-mvc-partialview
viewdata
Натан Тейлор
источник
источник
Чтобы расширить то, что опубликовал womp, вы можете передать новые View Data, сохранив существующие View Data, если вы используете перегрузку конструктора,
ViewDataDictionary
например:источник
TemplateInfo.HtmlFieldPrefix
дочерний элемент управления, который будет сброшен в противном случаеЧастичная страница (_Header):
источник
Я думаю, что это должно работать нет?
источник
Создайте другой класс, который содержит ваш строго типизированный класс.
Добавьте свой новый материал в класс и верните его в представление.
Затем в представлении убедитесь, что вы унаследовали свой новый класс и изменили биты кода, которые теперь будут содержать ошибку. а именно ссылки на ваши поля.
Надеюсь это поможет. Если нет, то дайте мне знать, и я отправлю конкретный код.
источник
Самый простой способ передать дополнительные данные - это добавить данные в существующую ViewData для представления, как отмечает @Joel Martinez. Однако, если вы не хотите загрязнять свои ViewData, RenderPartial имеет метод, который принимает три аргумента, а также версию с двумя аргументами, которую вы показываете. Третий аргумент - ViewDataDictionary. Вы можете создать отдельный ViewDataDictionary только для вашего частичного, содержащий только дополнительные данные, которые вы хотите передать.
источник
Это также должно работать.
источник
Я знаю, что это старый пост, но я столкнулся с ним, когда столкнулся с подобной проблемой, связанной с ядром 3.0, надеюсь, он кому-нибудь поможет.
источник
Вы можете использовать динамическую переменную ViewBag
источник