优化媒体控制器

问题描述

我正在尝试使用 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 一般坚持页面、块、页面部分控制器的使用规则。你可能有一个很好的用例吗?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...