HtmlRenderAction’u örneğin kullanıcı bir e ticaret sitesinde hangi sayfaya giderse gitsin sepette 5 ürünün var, 10 ürünün var gibi sabit alanlara dbden veri çekmek için kullanırız.
I.Bunun için sayfanın dbye gidip sepetteki toplam ürün sayısı gibi değeri çekmesi lazım yani veri çekeceğimi< için Controllerda bir ActionResult yazacagız. Biz örneğimizde Toplam maaşı ve toplam çalışanı çekelim
Cotrollers/PersonnelController
public int? TotalSalary() //Biz sadece int bir değer döndüreceğimiz için ActionResult'ı int tipinde yazdık. (? nullable anlamına geliyor)
{
return dbPersonelKYMVCEntities.Personnel.Sum(x=>x.Salary);
}
public ActionResult TotalEmployee()
{
ViewBag.EmployeeCount = dbPersonelKYMVCEntities.Personnel.Count(); //ViewBag ile PartialView'ımıza veri taşıdık
return PartialView();
}
II. Şimdi sabit alan tüm sayfalarda görüneceği için _Navbar’a geçtik ve buraya Bir RenderAction ekledik
Views/Shared/_Navbar
<li>
<a href="/Security/Logout">
Total Salary:
@{Html.RenderAction("TotalSalary", "Personnel");} @* RenderAction, ActionResulltName ve ControllerName parametrelerini ister*@
</a>
</li>
<li>
@{Html.RenderAction("TotalEmployee", "Personnel");}
</li>
III. Eğer I.bölümdeki gibi int değilde ActionResult döndürmek istersek, PartialView oluşturup veriyi ordan da alabiliriz
Views/Personnel/TotalEmployee.cshtml
<h5 class="text-success" style="margin-top:17px; background-color:orange">Number of Peronnels: @ViewBag.EmployeeCount</h5> <!-- ViewBag ile gelen veriyi gösterdik -->

Yorum bırakın