【问题标题】:How to show User List in Partial View如何在部分视图中显示用户列表
【发布时间】:2019-06-23 12:40:13
【问题描述】:

我的用户列表方法的家庭控制器以及如何在@Html.Partial("_UserList")中调用_Layout.chtml;不打电话,请帮帮我先生。

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();
    }


}

【问题讨论】:

  • 您的要求不明确!您是否尝试在布局页面中插入@Html.Partial("_UserList"),是吗?

标签: asp.net-core asp.net-identity asp.net-core-2.1


【解决方案1】:

你的问题很难理解,但我最好的理由是你得到的只是在浏览器中呈现的部分文档,没有任何布局,你想要布局。

原因很简单,您返回的是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")

【讨论】:

    猜你喜欢
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多