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这里是视图!是否尝试附加调试器并中断编辑器方法?