Вы никогда не должны обращаться к базе данных непосредственно в представлении.Вместо этого вы можете использовать компонент вида.Создайте файл ViewComponents\CustomerTableViewComponent.cs
с чем-то вроде следующего:
public class CustomerTableViewComponent : ViewComponent
{
private readonly ProjectNameEntities _context;
public CustomerTableViewComponent(ProjectNameEntities context)
{
_context = context ?? throw new ArgumentNullException(nameof(context));
}
public async Task<IViewComponentResult> InvokeAsync()
{
var customers = await _context.Customer.ToListAsync();
return View(customers);
}
}
Затем создайте представление, Views\Shared\Components\CustomerTable\Default.csthml
.Внутри:
@model List<Customer>
<table>
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.Name</td>
</tr>
}
</tbody>
</table>
Наконец, где вы хотите, чтобы эта таблица появилась, добавьте строку:
@await Component.InvokeAsync("CustomerTable")