问题描述
我需要将模型绑定到布局,这就是我所做的,并且确实可以正常工作:
我的ViewComponent
类是在我的主项目的名为ViewComponents
的文件夹中创建的:
public class ItemsGroupTitleViewComponent : ViewComponent
{
private readonly IUnitOfWork _unitOfWork;
public ItemsGroupTitleViewComponent(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
public async Task<IViewComponentResult> InvokeAsync()
{
IEnumerable<ItemsGroup> itemsGroups = await _unitOfWork.itemsGroupRepository.GetAll(includeProperties: "category");
return View(itemsGroups);
}
}
与viewComponent相关的视图在以下文件夹中创建:
Views>Shared>Components>ItemsGroupTitle>Default.cshtml
和我的Default.cshtml相似:
@model IEnumerable<Project.Models.ItemsGroup>
// Something to get from data base and show ..
在“布局”页面或我要使用该视图组件的任何* .cshtml中:
@await Component.InvokeAsync("ItemsGroupTitle");
一切似乎都很好,但是在viewComponent类中使用unitofwork注入使我感到困扰,因此我希望在Admin区域的itemsGroupcontroller中调用我的Index操作方法以从viewComponent类中省略unitofwork。
所以我需要将视图组件类简化为这样的东西,但是我无法管理它:
public class ItemsGroupTitleViewComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
IEnumerable<ItemsGroup> itemsGroups = ?? resultOfAction("mycontroller","myActionMethod","new {Area = "Admin"});
return View(itemsGroups);
}
}
我不知道是否可能。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)