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

时间:2015-03-13 05:21:51

标签: orchardcms orchardcms-1.8

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

代码基本上是对Maps模块示例的一个小修改。 (我为了简洁而修剪了使用和诸如此类的东西。)示例在这里:http://docs.orchardproject.net/Documentation/Writing-a-content-part

编辑:我将其缩小到我的bool和DateTime属性。如果我只使用字符串和整数,我的模块按预期工作。我查看了我的modules目录中的其他迁移,并使用了通用的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; }
        }

    }
}

Migrations.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 个答案:

答案 0 :(得分:0)

如果这与示例类似,则可能存在两个可能的问题。 1)也许您还没有添加展示位置文件。如果迁移工作且没有放置文件,那么您将看不到数据。 2)如果迁移失败,另一种可能的解决方案是它没有 bool DateTime 的正确数据类型。而是尝试 DBType .Boolean DBType .DateTime 。如果这对您有用,请告诉我。