Orchardcms Orchard CMS模块没有来自编辑器的值

Orchardcms Orchard CMS模块没有来自编辑器的值,orchardcms,orchardcms-1.8,Orchardcms,Orchardcms 1.8,我已经创建了我的第一个简单模块,但由于某种原因,我的编辑器似乎没有从表单中获取任何值 该代码基本上是对Maps模块示例的一个轻微修改。为了简明扼要,我删减了用法等等。示例如下: 编辑:我把范围缩小到我的bool和DateTime属性。如果我只使用字符串和整数,我的模块将按预期工作。我在modules目录中查看了其他迁移,它们使用通用列方法。我试过了,但还是没能成功 型号: namespace Maps.Models { public class MapRecord : ContentPa

我已经创建了我的第一个简单模块,但由于某种原因,我的编辑器似乎没有从表单中获取任何值

该代码基本上是对Maps模块示例的一个轻微修改。为了简明扼要,我删减了用法等等。示例如下:

编辑:我把范围缩小到我的bool和DateTime属性。如果我只使用字符串和整数,我的模块将按预期工作。我在modules目录中查看了其他迁移,它们使用通用列方法。我试过了,但还是没能成功

型号:

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;
        }
    }

如果这与示例类似,则可能存在两个问题。1可能您尚未添加放置文件。如果迁移成功并且没有放置文件,那么您将看不到数据。2如果迁移失败,另一个可能的解决方案是它没有正确的bool和DateTime数据类型。请改为尝试DBType.Boolean和DBType.DateTime。让我知道这是否对您有效。

您的迁移是什么样子的?@devqon我已将迁移添加到问题中。您是否添加了内容处理程序?是的,但与示例相比没有更改。我将把它添加到问题中。尝试将您的记录重命名为MapPartRecord。最初,我将迁移为.Columnname、DBType.DateTime等,但这不起作用,因此我尝试使用泛型方法。还是没有骰子。谢谢你的主意。我仍然没有解决这个问题——我只是继续前进,稍后会回来尝试解决。对我来说,这更像是一个概念的证明,而不是一件严肃的事情。