Ваш вопрос труден для понимания, но мое лучшее объяснение заключается в том, что вы получаете только частичный документ, отображаемый в браузере, без какого-либо макета, и вам нужен макет.
Причина этого заключается в том, чтопросто вы возвращаете PartialView
, что явно исключает макет.Вместо этого вам нужно вернуть View
, как ваши действия.Затем вы должны использовать фактическое представление, а не частичное _UserList
.В этом представлении вы можете назвать свою частичку:
@model List<ApplicationUser>
<partial name="_UserList" />
Однако, если бы мне пришлось угадывать еще дальше, я бы сказал, что вашей конечной целью является отображение этого списка пользователей как части вашего макета,все еще будучи в состоянии использовать другие модели / представления.Для этого вам следует использовать компонент представления:
public class UserListViewComponent : ViewComponent
{
private readonly ApplicationDbContext _context;
public UserListViewComponent(ApplicationDbContext context)
{
_context = context;
}
public async Task<IViewComponentResult> InvokeAsync()
{
var userList = await _context.Users.Include(a => a.Departments).Include(a => a.Positions).ToListAsync();
return View(userList);
}
}
Затем создайте представление Views\Shared\Components\UserList\Default.cshtml
и добавьте свой HTML для отображения там списка пользователей (что, скорее всего, является содержимым _UserList.cshtml
в настоящее время),Наконец, добавьте следующую строку, где вы хотите, чтобы появился список пользователей:
@await Component.InvokeAsync("UserList")