我已经创建了我的第一个简单模块,但出于某种原因,我的编辑器似乎没有从表单中获取任何值。
代码基本上是对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;
}
}
答案 0 :(得分:0)
如果这与示例类似,则可能存在两个可能的问题。 1)也许您还没有添加展示位置文件。如果迁移工作且没有放置文件,那么您将看不到数据。 2)如果迁移失败,另一种可能的解决方案是它没有 bool 和 DateTime 的正确数据类型。而是尝试 DBType .Boolean 和 DBType .DateTime 。如果这对您有用,请告诉我。