Orchardcms 果园部分没有';救不了

Orchardcms 果园部分没有';救不了,orchardcms,orchardcms-1.8,Orchardcms,Orchardcms 1.8,浏览教程一切正常,但数据无法保存。 表已创建,编辑页面显示字段,但未保存任何记录。单击“保存”按钮后,我收到以下消息: 您的汽车内容类型已创建 找不到 您要查找的页面不存在 有什么想法吗 型号: public class CarPart : ContentPart<CarPartRecord> { public string Name { get { return Record.Name; } set { Record.Name = value

浏览教程一切正常,但数据无法保存。 表已创建,编辑页面显示字段,但未保存任何记录。单击“保存”按钮后,我收到以下消息:

您的汽车内容类型已创建

找不到

您要查找的页面不存在

有什么想法吗

型号:

public class CarPart : ContentPart<CarPartRecord> {
    public string Name {
        get { return Record.Name; }
        set { Record.Name = value; }
    }
    public string Description {
        get { return Record.Description; }
        set { Record.Description = value; }
    }
    public bool IsPublished {
        get { return Record.IsPublished; }
        set { Record.IsPublished = value; }
    }
}
public class CarPartRecord : ContentPartRecord {
    public virtual string Name { get; set; }
    public virtual string Description { get; set; }
    public virtual bool IsPublished { get; set; }
}
公共类CarPart:ContentPart{
公共字符串名{
获取{return Record.Name;}
设置{Record.Name=value;}
}
公共字符串描述{
获取{return Record.Description;}
设置{Record.Description=value;}
}
公共图书馆已出版{
获取{return Record.IsPublished;}
设置{Record.IsPublished=value;}
}
}
公共类CarPartRecord:ContentPartRecord{
公共虚拟字符串名称{get;set;}
公共虚拟字符串描述{get;set;}
公共虚拟bool已发布{get;set;}
}
处理程序:

public class CarPartHandler : ContentHandler {
    public CarPartHandler(IRepository<CarPartRecord> repository) {
        Filters.Add(StorageFilter.For(repository));
    }
}
公共类carpathandler:ContentHandler{
公共停车场管理员(IRepository repository){
Filters.Add(StorageFilter.For(repository));
}
}
司机:

public class CarPartDriver : ContentPartDriver<CarPart> {
    protected override string Prefix { get { return "Car"; } }
    protected override DriverResult Editor(CarPart part, dynamic shapeHelper) {
        return ContentShape("Parts_Car_Edit", () => shapeHelper.EditorTemplate(TemplateName: "Parts/Car", Model: part, Prefix: Prefix));
    }
    protected override DriverResult Editor(CarPart part, IUpdateModel updater, dynamic shapeHelper) {
        updater.TryUpdateModel(part, Prefix, null, null);
        return Editor(part, shapeHelper);
    }
}
公共类CarPartDriver:ContentPartDriver{
受保护的重写字符串前缀{get{return“Car”;}
受保护的替代驱动器结果编辑器(CarPart零件,动态形状帮助){
返回ContentShape(“Parts\u Car\u Edit”,()=>shapeHelper.EditorTemplate(TemplateName:“Parts/Car”,Model:part,Prefix:Prefix));
}
受保护的覆盖驱动程序结果编辑器(CarPart部件、IUpdateModel更新程序、动态形状帮助程序){
TryUpdateModel(部分,前缀,null,null);
返回编辑器(零件、shapeHelper);
}
}
迁移:

public int Create(){
        SchemaBuilder.DropTable("CarPartRecord");
        SchemaBuilder.CreateTable("CarPartRecord", table => table
            .ContentPartRecord()
            .Column<string>("Name",column => column.WithLength(50).NotNull().Unique())
            .Column<string>("Description",column => column.WithLength(500))
            .Column<bool>("IsPublished",column => column.WithDefault(true).NotNull()));
        return 1;
    }
    public int UpdateFrom1() {
        ContentDefinitionManager.AlterPartDefinition("CarPart",part => part.Attachable());
        return 2;
    }
public int Create(){
SchemaBuilder.DropTable(“CarPartRecord”);
CreateTable(“CarPartRecord”,table=>table
.ContentPartRecord()
.Column(“名称”,Column=>Column.WithLength(50).NotNull().Unique())
.Column(“说明”,Column=>Column.WithLength(500))
.Column(“IsPublished”,Column=>Column.WithDefault(true).NotNull());
返回1;
}
public int UpdateFrom1(){
ContentDefinitionManager.AlterPartDefinition(“CarPart”,part=>part.Attachable());
返回2;
}
错误:

Orchard.Exceptions.DefaultExceptionPolicy-Default-捕获到意外异常 http…./OrchardLocal/Admin/Contents/Create/Car NHibernate.Exceptions.GenericADOException:无法执行批处理命令。[SQL:SQL不可用]-->System.Data.SqlClient.SqlException:无法将值NULL插入“Name”列、表“OrchardDB.dbo.Mega_Car_CarPartRecord”;列不允许空值。插入失败

NHibernate.AssertionFailure-默认-发生AssertionFailure-这可能表示NHibernate或自定义类型中存在错误。 http..../OrchardLocal/Admin/Contents/Create/Car NHibernate.AssertionFailure:Orchard.ContentManagement.Records.ContentTypeRecord条目中的空id(发生异常后不要刷新会话)

Orchard.Web\Modules\M.Car\Views\EditorTemplates\Parts

@using System.Web.Mvc.Html
@model  M.Car.Models.CarPart
<fieldset>
    <legend>Car Fields</legend>
    <div class="editor-label">@Html.LabelFor(x => x.Name)</div>
    <div class="editor-field">
        @Html.EditorFor(x => x.Name)
        @Html.ValidationMessageFor(x => x.Name)
    </div>
    <div class="editor-label">@Html.LabelFor(x => x.Description)</div>
    <div class="editor-field">
        @Html.EditorFor(x => x.Description)
        @Html.ValidationMessageFor(x => x.Description)
    </div>
    <div class="editor-label">@Html.LabelFor(x => x.IsPublished)</div>
    <div class="editor-field">
        @Html.EditorFor(x => x.IsPublished)
        @Html.ValidationMessageFor(x => x.IsPublished)
    </div>
</fieldset>
@使用System.Web.Mvc.Html
@模型M.Car.Models.CarPart
汽车场
@LabelFor(x=>x.Name)
@EditorFor(x=>x.Name)
@Html.ValidationMessageFor(x=>x.Name)
@LabelFor(x=>x.Description)
@EditorFor(x=>x.Description)
@Html.ValidationMessageFor(x=>x.Description)
@LabelFor(x=>x.IsPublished)
@Html.EditorFor(x=>x.IsPublished)
@Html.ValidationMessageFor(x=>x.IsPublished)

请同时显示您的迁移,并在日志中查找异常。@BertrandLeRoy我刚刚用迁移和错误更新了它。UI中已经填充了“Name”。您的驱动程序似乎缺少所有形式的验证,但问题可能出在编辑器模板中。也请出示。@BertrandLeRoy这里是视图!是否尝试附加调试器并中断编辑器方法?