Saya tahu apa itu ViewData dan menggunakannya sepanjang waktu, tetapi di ASP.NET Preview 5 mereka memperkenalkan sesuatu yang baru yang disebut TempData.
Saya biasanya sangat mengetik ViewData saya, daripada menggunakan pendekatan kamus objek.
Jadi, kapan saya harus menggunakan TempData sebagai ganti ViewData?
Apakah ada praktik terbaik untuk ini?
asp.net-mvc
Elijah Manor
sumber
sumber
TempData
sini stackoverflow.com/a/17199709/2015869Jawaban:
Dalam satu kalimat:
TempData
seperti ViewData dengan satu perbedaan: Mereka hanya berisi data antara dua permintaan yang berurutan, setelah itu dimusnahkan. Anda dapat menggunakanTempData
untuk menyampaikan pesan kesalahan atau yang serupa.Meski sudah usang, artikel ini memiliki deskripsi yang bagus tentang
TempData
siklus proses.Seperti yang dikatakan Ben Scheirman di sini :
sumber
TempData
akan melibatkan sesuatu yang berpotensi jauh lebih rumit (sesi) daripada kamus sederhana yang diteruskan dari metode ke metodeSaat suatu tindakan mengembalikan hasil RedirectToAction, tindakan itu menyebabkan pengalihan HTTP (setara dengan Response.Redirect). Data dapat disimpan dalam properti TempData (kamus) pengontrol selama satu permintaan pengalihan HTTP.
sumber
ViewData:
ViewData
adalah tipe kamuspublic ViewDataDictionary ViewData { get; set; }
ControllerBase
, yang merupakan indukController
kelasTempData:
TempData
digunakan secara internalTempDataDictionary
:public TempDataDictionary TempData { get; set; }
TempDataDictionary
objek:Perilaku ini baru dari ASP.NET MVC 2 dan versi yang lebih baru. Di versi sebelumnya dari ASP.NET MVC, nilai di
TempData
hanya tersedia hingga permintaan berikutnya.Lihat perbandingan ViewData, ViewBag, TempData dan Session di MVC secara detail
sumber
Saya menemukan perbandingan ini berguna: http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBag-vs-TempData-vs-Session.html
Satu hal yang saya temukan adalah bahwa nilai TempData dihapus setelah dibaca secara default. Ada pilihan, lihat metode 'Peek' dan 'Keep' di Msdn untuk info lebih lanjut .
sumber
data tampilan digunakan ketika kita ingin meneruskan data dari pengontrol ke tampilan yang sesuai. data tampilan memiliki umur yang sangat pendek artinya akan rusak saat pengalihan terjadi. Contoh (Pengontrol):
try1.cshtm
TempData mentransfer data antara pengontrol atau antara tindakan. Ini digunakan untuk menyimpan pesan satu kali dan masa pakainya sangat singkat. Kita dapat menggunakan TempData.Keep () untuk membuatnya tersedia melalui semua tindakan atau membuatnya tetap ada.
Contoh (Pengontrol):
TempView1.cshtm
sumber
Sekadar catatan untuk TempData.
Data di dalamnya disimpan tidak disimpan hingga permintaan berikutnya , tetapi hingga operasi baca berikutnya dipanggil!
Lihat:
TempData tidak akan rusak setelah permintaan kedua
sumber