我需要在Kentico中定义一个表单,该表单一旦提交,将在同一页面中显示youtube视频(无重定向)。这将类似于“显示文本”。有没有办法覆盖现有响应?
答案 0 :(得分:1)
在现成的Kentico内部看起来似乎不可配置。而且看起来不太容易实现,但我认为它仍然可行:
首先,创建您的自定义表单窗口小部件并从 KenticoFormWidgetController 继承它(您可能需要重写一些内部方法)。
然后,在 FormSubmitInternal 方法中实现您的自定义逻辑-这是默认小部件中的示例:
if (!string.IsNullOrEmpty(bizFormInfo.FormDisplayText))
{
string str = this.GetMacroResolver(bizFormInfo, bizFormItem, true).ResolveMacros(bizFormInfo.FormDisplayText, (MacroSettings) null);
TagBuilder tagBuilder = new TagBuilder("div")
{
InnerHtml = str
};
tagBuilder.AddCssClass("formwidget-submit-text");
return (ActionResult) this.Content(tagBuilder.ToString());
}
例如,如果显示文本中有“视频”一词,则可以将此逻辑与之联系在一起-进行一些逻辑操作,然后可以在此处合并自己的HTML标记。