如何解决如何从ASP.NET Core 3.1-MVC中的viewComponent类调用不同区域/控制器/动作方法中的动作方法?
我需要将模型绑定到布局,这就是我所做的,并且确实可以正常工作:
我的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 举报,一经查实,本站将立刻删除。