در این جلسه از آموزش ASP.NET Core نحوه نمایش لیست در View را به شما همراهان گرامی آموزش خواهیم داد. در جلسات گذشته نحوه انتقال داده از Controller به View و همچنین ایجاد Dynamic View و Strongly Typed View را مورد بررسی قرار دادیم. در ادامه در این جلسه با نوع داده IENumerable و بازیابی اطلاعاتی لیست در View خواهیم پرداخت.
IENumerable چیست؟
IENUmerable یک اینترفیس در فضای نام System.Collections.IEnumerable میباشد که داری یک متد GetEnumerator است. خروجی این متد از نوع اینترفیس IEnumerator است. IEnumerator یک اینترفیس مرجع برای کلاسهای ایجاد شده برای ذخیره داده قابل شمارش مانند Models میباشد (Non-Generic Collections). عناصر ذخیره شده در IEnumerable بوسیله foreach قابل دسترس میباشند.
نحوه نمایش لیست در View
ابتدا برای بازیابی داده از پایگاه داده و یا ریپازیتوری ایستا، درون اینترفیس خود یک متد برای بازیابی اطلاعات مورد نظر ایجاد میکنیم. نوع خروجی این متد IENumerable است که میتواند لیستی از objectهای کلاس مورد نظر را در خود ذخیره کند.
public interface ICostRepository
{
IEnumerable<Cost> GetAllCost();
}
سپس در ریپازیتوری و یا ریپازیتوری های خود اقدام به پیادهسازی متد جدید میکنیم. در این دوره آموزشی فعلا ما فقط یک ریپازیتوزی ایستا داریم که پیاده سازی را میتوانیم در آن انجام دهیم.
public IEnumerable<Cost> GetAllCost()
{
return costs;
}
در مرحله بعد در Controller خود ActionMethod مورد نظر را ایجاد میکنیم. سپس داده های مورد نظر را در Model ذخیره کرده و توسط متد View به نمای خود ارسال میکنیم.
public IActionResult List()
{
var model = costRepository.GetAllCost();
return View(model);
}
در پایان، View مربوطه را ایجاد کرده و با استفاده از حلقه foreach دادههای ارسالی را واکشی و نمایش میدهیم.
@model IEnumerable<DailyCostWebApplication.Models.Cost>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<table>
<thead>
<tr>
<td>ID</td>
<td>Amount</td>
<td>Category</td>
<td>Comment</td>
</tr>
</thead>
<tbody>
@foreach (var cost in Model)
{
<tr>
<td>@cost.ID</td>
<td>@cost.Amount</td>
<td>@cost.Category</td>
<td>@cost.Comment</td>
</tr>
}
</tbody>
</table>
</body>
</html>
در صورت نیاز به جزئیات بیشتر، میتوانید ویدئو آموزشی این جلسه را تماشا نمایید. همچنین برای آگاهی از جلسات بعدی این دوره آموزشی، ما را در اینستاگرام، تلگرام، یوتیوب و آپارات دنبال کنید و لیست کامل جلسات در این قسمت در دسترس شما میباشد.
دانلود اسلایدهای آموزشی این جلسه از اینجا