我很难在我的自定义主题中为特定区域添加形状。我想要实现的是,
- 添加了在主页 url 上触发的控制器操作。“主题”属性分配给控制器动作。
- 在此控制器操作中,我使用 IWorkContextAccessor 添加了一个形状,并指定了要在其中呈现该形状的区域。
问题/挑战:
- 如果我的控制器操作的返回类型为“void”,则不会呈现任何内容。
- 将控制器动作返回类型更改为“ActionResult”,形状会在所需区域呈现,但与控制器动作关联的视图也会被呈现。作为一种解决方法,我必须为我的控制器操作声明一个空视图(这似乎是一种开销)。
这是我的控制器操作代码。
返回类型为 ActionResult 的代码
[Themed]
public ActionResult HomePageSideZone()
{
string test = "This is text.";
_workContextAccessor.GetContext()
.Layout
.Zones["column2_tab4"]
.Add(_shapeFactory.MyShape(Text: test));
return View("CargillHomePageSizeZone", _shapeFactory.CargillHomePageSizeZone(Text: test));
}
返回类型为 Void 的代码
[Themed]
public void HomePageSideZone()
{
string test = "This is text.";
_workContextAccessor.GetContext()
.Layout
.Zones["column2_tab4"]
.Add(_shapeFactory.MyShape(Text: test));
}
我不打算使用“放置”文件,因为我想使用代码来实现此功能。