问题描述
我正在尝试使用 Optimizely(以前称为 Episerver 的艺术家)中的控制器来自定义渲染媒体项的方式,但控制器似乎没有被调用:
public class MediaController : PartialContentController<MediaData>
{
private readonly UrlResolver UrlResolver;
public MediaController(UrlResolver urlResolver) => this.UrlResolver = urlResolver;
public override ActionResult Index(MediaData currentContent)
{
switch (currentContent)
{
//Do some logic here
}
}
}
我的印象是,对于从 MediaData 继承的任何模型,这个 PartialContentController 都会被触发。相反,它呈现一个默认的 img 标签。无论如何,我似乎无法拦截该过程并使用一些自定义图像标记。如何强制 Optimizely 使用我的控制器?
解决方法
可能是 Episerver 选择另一个控制器来呈现内容,而不是您的控制器。
您可以尝试将其拆分为四个独立的控制器,每种媒体类型一个(最后一个回退到 MediaData)。这将使您的控制器“更具体”,更有资格被选中进行渲染。
,你想完成什么。您是否试图从页面/块中调用它。如果是这样,我会在页面/块控制器中使用服务/帮助程序来获取模型数据,然后创建一个图像视图模型并以这种方式将 itg 返回到视图中
id 一般坚持页面、块、页面部分控制器的使用规则。你可能有一个很好的用例吗?