Модуль Orchard CMS без значений из редактора

Я создал свой первый простой модуль, но по какой-то причине мой редактор не получает никаких значений из формы.

Код в основном представляет собой небольшую модификацию примера модуля Карты. (Для краткости я обрезал использование и прочее.) Пример здесь: http://docs.orchardproject.net/Documentation/Writing-a-content-part

РЕДАКТИРОВАТЬ: я сузил его до свойств bool и DateTime. Если я использую только строки и целые числа, мой модуль работает, как и ожидалось. Я просмотрел другие миграции в моем каталоге модулей, и они используют общий метод Column. Я пробовал это, но все еще не могу заставить его работать.

Модель:

namespace Maps.Models
{
    public class MapRecord : ContentPartRecord
    {
        public virtual int SenderId { get; set; }
        public virtual int RecipientId { get; set; }

        public virtual string Subject { get; set; }
        public virtual string Body { get; set; }
        public virtual DateTime Timestamp { get; set; }

        public virtual bool Read { get; set; }
        public virtual int ReplyTo { get; set; }
    }

    public class MapPart : ContentPart<MapRecord>
    {
        [Required]
        public int SenderId
        {
            get { return Record.SenderId; }
            set { Record.SenderId = value; }
        }

        [Required]
        public int RecipientId
        {
            get { return Record.RecipientId; }
            set { Record.RecipientId = value; }
        }

        [Required]
        public string Subject
        {
            get { return Record.Subject; }
            set { Record.Subject = value; }
        }

        [Required]
        public string Body
        {
            get { return Record.Body; }
            set { Record.Body = value; }
        }

        [Required]
        public DateTime Timestamp
        {
            get { return Record.Timestamp; }
            set { Record.Timestamp = value; }
        }

        [Required]
        public bool Read
        {
            get { return Record.Read; }
            set { Record.Read = value; }
        }

        [Required]
        public int ReplyTo
        {
            get { return Record.ReplyTo; }
            set { Record.ReplyTo = value; }
        }

    }
}

Миграции.cs

public class Migrations : DataMigrationImpl {

        public int Create() {
            // Creating table MapRecord
            SchemaBuilder.CreateTable("MapRecord", table => table
                .ContentPartRecord()
                .Column<int>("RecipientId")
                .Column<int>("SenderId")
                .Column<string>("Subject")
                .Column<string>("Body")
                .Column<DateTime>("Timestamp")
                .Column<bool>("Read")
                .Column<int>("ReplyTo")
            );

            ContentDefinitionManager.AlterPartDefinition(
                typeof(MapPart).Name, cfg => cfg.Attachable());

            return 1;
        }
    }

person hsimah    schedule 13.03.2015    source источник
comment
Как выглядит ваша миграция?   -  person devqon    schedule 13.03.2015
comment
@devqon Я добавил миграцию к вопросу.   -  person hsimah    schedule 13.03.2015
comment
Вы добавили обработчик содержимого?   -  person Hazza    schedule 13.03.2015
comment
Да, но это не изменилось по сравнению с образцом. Добавлю к вопросу.   -  person hsimah    schedule 13.03.2015
comment
Когда вы говорите сбросить свой сад, вы удалили папку App_data?   -  person Hazza    schedule 13.03.2015
comment
Да, это было решение, предложенное Бертраном в другом посте.   -  person hsimah    schedule 13.03.2015
comment
Попробуйте переименовать свою запись в MapPartRecord (stackoverflow.com /вопросы/26407083/)   -  person devqon    schedule 13.03.2015
comment
Я переименовал класс MapPartRecord, но это не удалось. Затем я обновил имя таблицы, чтобы оно было MapPartRecord при миграции, и все еще без кубиков.   -  person hsimah    schedule 13.03.2015
comment
Я сузил его до свойств DateTime и bool. Почему-то ломают. См. обновленный файл Migrations.cs и класс модели.   -  person hsimah    schedule 14.03.2015


Ответы (1)


Если это похоже на пример, могут быть две возможные проблемы. 1) Возможно, вы не добавили файл размещения. Если миграция сработала, а файла размещения нет, вы не увидите данные. 2) Другим возможным решением, если миграция не удалась, может быть отсутствие правильных типов данных для bool и DateTime. Вместо этого попробуйте DBType.Boolean и DBType.DateTime. Дайте мне знать, если это работает для вас.

person Eric    schedule 16.03.2015
comment
Первоначально у меня были миграции как .Column(name, DBType.DateTime) и т. д., но это не сработало, поэтому вместо этого я попытался использовать общий метод. До сих пор нет кости. Спасибо за идею. Я до сих пор не решил это - я просто ушел и вернусь, чтобы попытаться понять это позже. Для меня это скорее доказательство концепции, чем что-то серьезное. - person hsimah; 17.03.2015