ASP.NET Core 5/View'lar ve Controller'dan View'a veri taşıma: Revizyonlar arasındaki fark

İçerik silindi İçerik eklendi
Bekiroflaz (mesaj | katkılar)
Değişiklik özeti yok
Bekiroflaz (mesaj | katkılar)
171. satır:
===Veri taşıma yönetmlerinin karşılaştırması===
Diğer veri taşıma yöntemlerine kıyasla model bazlı veri taşıma yöntemi en avantajlısıdır. Çünkü model bazlı veri taşıma iki taraflı olması için tasarlanmıştır. Yani model bazlı veri taşıma ile hem controller'dan view'a, hem de view'dan controller'a veri taşıyabiliriz. Diğer veri taşıma yöntemleri ise yalnızca controller'dan view'a veri taşımak için tasarlanmıştır. Nasıl view'dan controller'a veri taşıyabileceğimiz, diğer bir deyişle nasıl kullanıcıdan veri alabileceğimiz sonraki bölümlerde açıklanacaktır.
===Controller'dan view'a Tuple göndermek===
Controller'dan view'a Tuple nesnesi gönderilebilir. Tuple'lar birden fazla nesne tutabilen sınıflardır. Ayrıca C# programlama dili Tuple'lar için özel sektaksa sahiptir. Controller'dan view'a Tuple gönderme (controller tarafı):
<syntaxhighlight lang="csharp">
User user = new User { Id=1, Name="Bekir", Surname="Oflaz" };
Product product = new Product {Id=1, Name="Eraser", Quantity=5 };
var tuple = (user, product);
return View(tuple);
</syntaxhighlight>
View tarafı:
<syntaxhighlight lang="html">
@model (WebApplication6.Models.User, WebApplication6.Models.Product)
<html>
<head></head>
<body>
@Model.Item1.Name
<br />
@Model.Item2.Name
</body>
</html>
</syntaxhighlight>
Bu örnekte Tuple'ın bileşenleri isimsizdir. Bu durumda Tuple bileşenlerine Item1, Item2, ... diğerek erişebiliriz. İstersek Tuple bileşenlerine isim de verebiliriz:
<syntaxhighlight lang="html">
@model (WebApplication6.Models.User u, WebApplication6.Models.Product p)
<html>
<head></head>
<body>
@Model.u.Name
<br />
@Model.p.Name
</body>
</html>
</syntaxhighlight>