存在模型 - \Models\HeaderPart.cs.在驱动程序中,想要创建 CategoriesMenuDriver 并使用 HeaderPart:
public class CategoriesMenuDriver : ContentPartDriver<HeaderPart>
{
private readonly dynamic shapeFactory;
private readonly IMenuAccessor menuAccessor;
public CategoriesMenuDriver(
IShapeFactory shapeFactory,
IMenuAccessor menuAccessor)
{
this.shapeFactory = shapeFactory;
this.menuAccessor = menuAccessor;
}
protected override DriverResult Display(HeaderPart part, string displayType, dynamic shapeHelper)
{
return this.ContentShape("Parts_CategoriesMenu", () => shapeHelper.Parts_CategoriesMenu(
MenuItems: this.menuAccessor.GetMenu<NavigationMenuItem>("UserAccount")));
}
}
但在类别菜单视图中
var headerPart = (HeaderPart)Model.ContentItem.HeaderPart;
Model.ContentItem 为空。
我可以在视图类别菜单中获取标题部分吗?
您应该能够像这样访问该部分:
HeaderPart part = Model.ContentPart;
虽然Model.ContentItem
不应该在那里为空,这很奇怪
编辑如果它也为空,您可以尝试自己设置:
protected override DriverResult Display(HeaderPart part, string displayType, dynamic shapeHelper)
{
return ContentShape("Parts_CategoriesMenu", () => shapeHelper.Parts_CategoriesMenu(
MenuItems: this.menuAccessor.GetMenu<NavigationMenuItem>("UserAccount"),
ContentPart: part
));
}
}