Я понял это.
Мне нужно было определить часть содержимого и тип содержимого для BarberPart. В Migrations.cs выполните:
ContentDefinitionManager.AlterPartDefinition(typeof(BarberPart).Name, p => p
.Attachable(false));
ContentDefinitionManager.AlterTypeDefinition("Barber", t => t
.WithPart(typeof(BarberPart).Name));
В методе «Создать» контроллера, замените:
var barber = _services.ContentManager.New(typeof(BarberPart).ToString());
с:
BarberPart barber = _services.ContentManager.New<BarberPart>("Barber");
Убедитесь, что у вас есть файл Drivers / BarberDriver.cs как таковой:
public class BarberDriver : ContentPartDriver<BarberPart>
{
protected override DriverResult Editor(BarberPart part, dynamic shapeHelper)
{
return ContentShape("Parts_Barber_Edit", () => shapeHelper.EditorTemplate(TemplateName: "Parts/Barber", Model: part, Prefix: Prefix));
}
protected override DriverResult Editor(BarberPart part, IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null, null);
return Editor(part, shapeHelper);
}
}
Убедитесь, что шаблон редактирования детали находится в /Views/EditorTemplates/Parts/Barber.cshtml и выглядит так:
@model SDKU.Barbr.Models.BarberPart
<fieldset>
@Html.EditorFor(model => model.SomePropertyName)
etc...
</fieldset>