Saya memiliki Tampilan Parsial yang sangat diketik yang menggunakan ProductImage dan ketika ditampilkan, saya juga ingin memberikan beberapa ViewData tambahan yang saya buat secara dinamis di halaman yang berisi. Bagaimana saya bisa meneruskan objek yang sangat diketik dan ViewData khusus saya ke tampilan sebagian dengan panggilan 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
Nathan Taylor
sumber
sumber
Untuk memperluas apa yang diposting, Anda bisa meneruskan Data Tampilan baru sambil mempertahankan Data Tampilan yang ada jika Anda menggunakan konstruktor yang berlebihan
ViewDataDictionary
seperti:sumber
TemplateInfo.HtmlFieldPrefix
kontrol anak yang akan direset sebaliknyaHalaman Sebagian (_Header):
sumber
Saya pikir ini tidak harus bekerja?
sumber
Buat kelas lain yang berisi kelas sangat Anda ketik.
Tambahkan barang baru Anda ke kelas dan kembalikan di tampilan.
Kemudian dalam tampilan, pastikan Anda mewarisi kelas baru Anda dan mengubah bit kode yang sekarang akan menjadi kesalahan. yaitu referensi ke bidang Anda.
Semoga ini membantu. Jika tidak, beri tahu saya dan saya akan mengirimkan kode tertentu.
sumber
Cara termudah untuk melewatkan data tambahan adalah menambahkan data ke ViewData yang ada untuk tampilan sebagai catatan @ Joel Martinez. Namun, jika Anda tidak ingin mencemari ViewData Anda, RenderPartial memiliki metode yang membutuhkan tiga argumen serta versi dua argumen yang Anda perlihatkan. Argumen ketiga adalah ViewDataDictionary. Anda dapat membuat ViewDataDictionary terpisah hanya untuk parsial Anda yang hanya berisi data tambahan yang ingin Anda sampaikan.
sumber
Ini juga harus bekerja.
sumber
Saya tahu ini adalah posting lama tapi saya menemukan ketika dihadapkan dengan masalah serupa menggunakan core 3.0, semoga membantu seseorang.
sumber
Anda dapat menggunakan variabel dinamis ViewBag
sumber