View sayfalarına ViewBag nesnesi ile bu ek bilgileri gönderebiliriz. Bu kesinlikle işimizi görür, isteğimizi gerçekleştirir ve ayrıca esnek bir de kullanım sağlar.
Tabi ViewBag bütün model çeşitleri için yeterli olmayabilir veya modelimizi daha dar bir alanda yönetmek isteyebiliriz ve ya View sayfasını geliştiren kişi bizim modelimizin yapısını bilmiyorsa bile intellisense özelliği ile modeli daha rahat yönetmek isteyebilir. Bu durum bizim içinde geçerli.
Böyle bir durumda kendi isteğimize göre ve modelimizin yapısını bozmadan kendi modellerimizi yazabiliriz. Yani View sayfalarına özel modeller.
Alış veriş sepeti örneğini düşünürsek, View sayfamıza özel viewModel sınıfımız aşağıdaki gibi olabilir.
public class ShoppingCartViewModel { public IEnumerable<Product> Products { get; set; } public decimal CartTotal { get; set; } public string Message { get; set; } }
Şimdi View sayfamız içerisinde bu modelimizi kullanabiliriz.
@model ShoppingCartViewModel
Bu şekilde kullanımda strongly-typed-view özelliklerinden(tip uyumu kontrolü, intellisense ve tip dönüşümü kullanmamak) hepsini kullanabiliriz.
Modelleri sonraki konularda daha detaylı olarak göreceğiz.
Teşekkürler, yazılarınız oldukça faydalı.
YanıtlaSil