1

我需要在 Kentico 中定义一个表单,一旦提交,它将在同一页面内显示一个 youtube 视频(无重定向)。这将类似于“显示文本”。有没有办法覆盖现有的响应?

4

1 回答 1

3

它看起来在 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 标记。

于 2019-05-13T16:39:04.730 回答