-2
我使用Orchard文檔中的guide創建了自定義模塊,但出於某種原因,我無法在創建新模塊時看到內容類型中的字段。爲Orchard創建自定義模塊
這是我的模型:
public class CustomerPartRecord : ContentPartRecord
{
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual int PhoneNumber { get; set; }
public virtual string Address { get; set; }
public virtual string Profession { get; set; }
public virtual string ProDescription { get; set; }
public virtual int Hours { get; set; }
}
public class CustomerPart : ContentPart<CustomerPartRecord>
{
[Required(ErrorMessage="you must enter your first name")]
[StringLength(200)]
public string FirstName { get { return Record.FirstName; } set { Record.FirstName = value; } }
[Required(ErrorMessage = "you must enter your last name")]
[StringLength(200)]
public string LastName { get { return Record.LastName; } set { Record.LastName = value; } }
[Required(ErrorMessage = "you must enter your phone number")]
[DataType(DataType.PhoneNumber)]
public int PhoneNumber { get { return Record.PhoneNumber; } set { Record.PhoneNumber = value; } }
[StringLength(200)]
public string Address { get { return Record.Address; } set { Record.Address = value; } }
[Required(ErrorMessage = "you must enter your profession")]
[StringLength(200)]
public string Profession { get { return Record.Profession; } set { Record.Profession = value; } }
[StringLength(500)]
public string ProDescription { get { return Record.ProDescription; } set { Record.ProDescription = value; } }
[Required(ErrorMessage = "you must enter your hours")]
public int Hours { get { return Record.Hours; } set { Record.Hours = value; } }
}
這是處理程序:
class CustomerHandler : ContentHandler
{
public CustomerHandler(IRepository<CustomerPartRecord> repository)
{
Filters.Add(StorageFilter.For(repository));
}
}
程序:
class CustomerDriver : ContentPartDriver<CustomerPart>
{
protected override DriverResult Display(CustomerPart part, string displayType, dynamic shapeHelper)
{
return ContentShape("Parts_Customer",() => shapeHelper.Parts_Customer(
FirstName: part.FirstName,
LastName: part.LastName,
PhoneNumber: part.PhoneNumber,
Address: part.Address,
Profession: part.Profession,
ProDescription: part.ProDescription,
Hours: part.Hours));
}
//GET
protected override DriverResult Editor(CustomerPart part, dynamic shapeHelper)
{
return ContentShape("Parts_Customer",() => shapeHelper.EditorTemplate(
TemplateName:"Parts/Customer",
Model: part,
Prefix: Prefix));
}
//POST
protected override DriverResult Editor(CustomerPart part, IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null, null);
return Editor(part, shapeHelper);
}
遷移:
public class Migrations : DataMigrationImpl
{
public int Create()
{
// Creating table CustomerPartRecord
SchemaBuilder.CreateTable("CustomerPartRecord", table => table
.ContentPartRecord()
.Column("FirstName", DbType.String)
.Column("LastName", DbType.String)
.Column("PhoneNumber", DbType.Int32)
.Column("Address", DbType.String)
.Column("Profession", DbType.String)
.Column("ProDescription", DbType.String)
.Column("Hours", DbType.Int32)
);
return 1;
}
public int UpdateFrom1()
{
ContentDefinitionManager.AlterPartDefinition("CustomerPart",
builder => builder.Attachable());
return 2;
}
public int UpdateFrom2()
{
ContentDefinitionManager.AlterTypeDefinition("Customer", cfg => cfg
.WithPart("CommonPart")
.WithPart("RoutePart")
.WithPart("BodyPart")
.WithPart("CustomerPart")
.WithPart("CommentsPart")
.WithPart("TagsPart")
.WithPart("LocalizationPart")
.Creatable()
.Indexed());
return 3;
}
}
有人可以告訴我,如果我錯過了什麼嗎?
是的,我做了,我把它包含在我的模塊的主目錄 –
你能看看我的遷移文件嗎?我有一種感覺,那裏有什麼錯,可能是我包含的部分太多,或者AlterTypeDefinition有問題 –
放置文件中有什麼? –