Как показать список пользователей в частичном представлении - PullRequest
0 голосов
/ 30 января 2019

Мой домашний контроллер метода списка пользователей и как вызвать _Layout.chtml in @ Html.Partial ("_ UserList");не звоните, и, пожалуйста, помогите мне, сэр.

public class HomeController : Controller
{
    private readonly ApplicationDbContext _context;

    public HomeController(ApplicationDbContext context)
    {
        _context = context;
    }
    public IActionResult UserList()
    {
        var applicationDbContext = _context.Users.Include(a => a.Departments).Include(a => a.Positions); 
        return PartialView("_UserList", applicationDbContext);
    }

    public IActionResult Index()
    {
        return View();
    }

    public IActionResult Privacy()
    {
        return View();
    }


}

1 Ответ

0 голосов
/ 30 января 2019

Ваш вопрос труден для понимания, но мое лучшее объяснение заключается в том, что вы получаете только частичный документ, отображаемый в браузере, без какого-либо макета, и вам нужен макет.

Причина этого заключается в том, чтопросто вы возвращаете 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...