Как сказано в комментарии, .Take () - хороший выбор для вашего требования.
Я создал пример на основе IEnumerable<SelectListItem>
с .Take()
, вы можете сослаться на это:
int recordCount = 5;
IEnumerable<SelectListItem> data= _context.TableName.OrderBy(x => x.ID)
.Select(x => new SelectListItem { Text = x.Name, Value = x.ID.ToString() })
.Take(recordCount).ToList();
После отладки данные будут представлять первые пять частей данных отсортированных по идентификатору в виде IEnumerable<SelectListItem>
.
Обновление
public IActionResult Index()
{
var allData = _context.TableC.OrderBy(x => x.ID).ToList();
int recordCount = 5;
IEnumerable<SelectListItem> data = _context.TableC.OrderBy(x => x.ID).Select(x => new SelectListItem { Text = x.Name, Value = x.ID.ToString() }).Take(recordCount).ToList();
ViewBag.DropDownData2 = data;
return View(allData);
}
Просмотр:
@model IEnumerable<WebApplication_core_mvc.Models.TableC>
@{
ViewData["Title"] = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>Index</h1>
<h3>All data:</h3>
<table class="table table-bordered">
<tr>
<th>ID</th>
<th>Name</th>
<th>Stauts</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.ID</td>
<td>@item.Name</td>
<th>@item.Status</th>
</tr>
}
</table>
<h3>DropDownList1:</h3>
@Html.DropDownList("TableC",
Model.Select(x => new SelectListItem { Text = x.Name, Value = x.ID.ToString() }).Take(5).ToList(),
"Select Data",
new { @class = "form-control" })
<h3>DropDownList2:</h3>
@Html.DropDownList("TableC",
(IEnumerable<SelectListItem>)ViewBag.DropDownData2,
"Select Data",
new { @class = "form-control" })
Вот новый результат:
введите описание изображения здесь