Я получаю сообщение об ошибке «Элемент модели, переданный в словарь, имеет тип« Orchard.UI.Zones.ZoneHolding », но для этого словаря требуется элемент модели типа« Первый. Мод ». Models.PersonListPart '", при вводе страницы редактора для содержимого в панели управления администратора.Ошибка создания пользовательского ContentPart Orchard CMS
Мой водитель содержание выглядит следующим образом:
public class PersonListPartDriver : ContentPartDriver<PersonListPart>
{
protected override DriverResult Display(
PersonListPart part, string displayType, dynamic shapeHelper) {
return ContentShape("Parts_PersonList",
() => shapeHelper.Parts_PersonList(
MaxCount: part.MaxCount
));
}
protected override DriverResult Editor(
PersonListPart part, dynamic shapeHelper) {
return ContentShape("Parts_PersonList_Edit",
() => shapeHelper.EditorTemplate(
TemplateName: "Parts/PersonList",
Models: part,
Prefix: Prefix
));
}
//POST
protected override DriverResult Editor(
PersonListPart part, IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null, null);
return Editor(part, shapeHelper);
}
}
Мои PersonListPart Модель выглядит следующим образом:
namespace First.Module.Models {
public class PersonListPart : ContentPart<PersonListPartRecord> {
public int MaxCount {
get { return Record.MaxCount; }
set { Record.MaxCount = value; }
}
}
public class PersonListPartRecord : ContentPartRecord {
public virtual int MaxCount { get; set; }
}
}
Он загружает редактор CSHTML для содержательной части, которая выглядит как:
@model First.Module.Models.PersonListPart
<fieldset>
<legend>@T("Person List Settings")</legend>
<ol>
<li>
@Html.LabelFor(m => m.MaxCount, T("Maximal count"));
@Html.TextBoxFor(m => m.MaxCount, new { @class = "text small" })
</li>
</ol>
</fieldset>
В частности, проблема связана с @model.
Когда вы отлаживаете и комментируете @model, Model.ContentItem.Part [0] имеет элемент, но, будучи новым для Orchard CMS, я не понимаю, как правильно это использовать.
Что ваше PersonListPart выглядеть? –
@ user3123386 добавлен PersonListPart выше –