0

我试图在 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 使用我的控制器?

4

2 回答 2

0

可能是 Episerver 选择了另一个控制器来呈现内容,而不是您的控制器。

您可以尝试将其拆分为四个单独的控制器,每种媒体类型一个(最后一个回退到 MediaData)。这将使您的控制器“更具体”的控制器,并且更有资格被选择进行渲染。

于 2021-07-20T18:07:36.940 回答
0

你想达到什么目的。您是否尝试从页面/块中调用它。如果是这样,我会在页面/块控制器中使用服务/帮助器来获取模型数据,然后创建一个图像视图模型并以这种方式将它返回到视图中

id 一般坚持页面、块、页面部分的使用控制器规则。你可能有一个很好的用例吗?

于 2021-07-22T08:23:11.843 回答