Вы не можете поместить SfPlaceHolder в виджет, он должен быть в вашем файле макета (шаблон страницы).
Что вы можете сделать, это создать собственный конструктор для вашего виджета и поместить в него один или несколько блоков контента, например по одному для каждой вкладки, которую вы хотите иметь.
Затем в представлении,Вы просто делаете контент.
https://www.progress.com/documentation/sitefinity-cms/create-custom-designer-views-mvc
РЕДАКТИРОВАТЬ: Для достижения этого вам необходимо:
Контроллеры / MyRichTextController.cs
public string RichText
{
get;
set;
}
Views / MyRichText / DesignerView.Default.cshtml
<div class="form-group">
<sf-html-field class="kendo-content-block"
sf-images-settings="@SettingsHelpers.GetMediaSettings("Image")"
sf-videos-settings="@SettingsHelpers.GetMediaSettings("Video")"
sf-documents-settings="@SettingsHelpers.GetMediaSettings("Document")"
sf-model="properties.RichText.PropertyValue">
</sf-html-field>
</div>
Views / MyRichText / DesignerView.Default.json
{
"priority": 1,
"components": [ "sf-html-field" ]
}
Другая альтернатива можетсоздать виджет Layout с вышеупомянутой html-структурой, который позволит пользователю размещать блоки содержимого внутри областей макета.
Вы можете просто скопировать любой из существующих виджетов макета и работать над этим.Обратите внимание, что при таком подходе у вас, вероятно, будут некоторые правила CSS, которые скрывают все, кроме первой панели вкладок, поэтому вам нужно будет иметь некоторые дополнительные правила CSS только для бэкэнда, чтобы показать все панели, чтобы пользователи могли перетаскивать виджеты вих.Это сделало бы этот подход немного более хитрым.