如何在局部视图中显示用户列表
How to show User List in Partial View
我的用户列表方法的主控制器以及如何在@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();
}
}
你的问题很难理解,但我的最佳推理是你得到的只是在浏览器中呈现的部分文档,没有任何布局,而你想要布局。
原因很简单,您是 return PartialView
,这明确排除了布局。相反,您需要 return View
喜欢您的行为。然后,您应该使用实际视图而不是 _UserList
局部视图。在该视图中,您可以调用您的部分:
@model List<ApplicationUser>
<partial name="_UserList" />
但是,如果我不得不进一步猜测,我会说您的最终目标是将此用户列表呈现为布局的一部分,同时仍然能够利用其他 models/views。为此,您应该使用视图组件:
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")
我的用户列表方法的主控制器以及如何在@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();
}
}
你的问题很难理解,但我的最佳推理是你得到的只是在浏览器中呈现的部分文档,没有任何布局,而你想要布局。
原因很简单,您是 return PartialView
,这明确排除了布局。相反,您需要 return View
喜欢您的行为。然后,您应该使用实际视图而不是 _UserList
局部视图。在该视图中,您可以调用您的部分:
@model List<ApplicationUser>
<partial name="_UserList" />
但是,如果我不得不进一步猜测,我会说您的最终目标是将此用户列表呈现为布局的一部分,同时仍然能够利用其他 models/views。为此,您应该使用视图组件:
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")