Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 内容部分未显示在编辑视图上_C#_Orchardcms - Fatal编程技术网

C# 内容部分未显示在编辑视图上

C# 内容部分未显示在编辑视图上,c#,orchardcms,C#,Orchardcms,我创建了一个内容部分并将其添加到内容类型中。数据库是用正确的字段创建的,但当我要创建该类型的内容项时,不会显示字段。 我的视图名为Deposit.cshtml,位于Views/EditorTemplates/Parts/Deposit.cshtml下 我已经看到了日志文件,但没有错误。 我试图调试DepositorPartDriver文件,但从未调用该类 C部分: public class DepositPart : ContentPart<DepositPartRecord> {

我创建了一个内容部分并将其添加到内容类型中。数据库是用正确的字段创建的,但当我要创建该类型的内容项时,不会显示字段。
我的视图名为Deposit.cshtml,位于Views/EditorTemplates/Parts/Deposit.cshtml下
我已经看到了日志文件,但没有错误。
我试图调试DepositorPartDriver文件,但从未调用该类

C部分:

public class DepositPart : ContentPart<DepositPartRecord>
{
    public string Name
    {
        get { return Record.Name; }
        set { Record.Name = value; }
    }

    public string Currency
    {
        get { return Record.Currency; }
        set { Record.Currency = value; }
    }

    public virtual decimal Liquidity
    {
        get { return Record.Liquidity; }
        set { Record.Liquidity = value; }
    }

    public virtual int Month
    {
        get { return Record.Month; }
        set { Record.Month = value; }
    }

    public virtual string Url
    {
        get { return Record.Url; }
        set { Record.Url = value; }
    }
}

public class DepositPartRecord : ContentPartRecord
{
    public virtual string Name { get; set; }
    public virtual string Currency { get; set; }
    public virtual decimal Liquidity { get; set; }
    public virtual int Month { get; set; }
    public virtual string Url { get; set; }
}
公共类DepositPart:ContentPart
{
公共字符串名
{
获取{return Record.Name;}
设置{Record.Name=value;}
}
公共字符串货币
{
获取{return Record.Currency;}
设置{Record.Currency=value;}
}
公共虚拟十进位流动性
{
获取{return Record.Liquidity;}
设置{Record.Liquidity=value;}
}
公共虚拟整数月
{
获取{return Record.Month;}
设置{Record.Month=value;}
}
公共虚拟字符串Url
{
获取{return Record.Url;}
设置{Record.Url=value;}
}
}
公共类DepositPartRecord:ContentPartRecord
{
公共虚拟字符串名称{get;set;}
公共虚拟字符串货币{get;set;}
公共虚拟内存{get;set;}
公共虚拟整数月{get;set;}
公共虚拟字符串Url{get;set;}
}
Migrations.cs:

public class Migrations : DataMigrationImpl
{
    public int Create()
    {
        SchemaBuilder.CreateTable("DepositPartRecord", table => table
            .ContentPartRecord()
            .Column<string>("name", column => column.WithLength(50))
            .Column<string>("currency", column => column.WithLength(50))
            .Column<decimal>("liquidity")
            .Column<int>("month")
            .Column<string>("url", column => column.WithLength(50))
        );
        return 1;
    }

    public int UpdateFrom1()
    {
        ContentDefinitionManager.AlterPartDefinition("DepositPartRecord", part => part
            .Attachable());
        return 2;
    }
}
公共类迁移:DataMigrationImpl
{
公共int创建()
{
CreateTable(“DepositorPartRecord”,table=>table
.ContentPartRecord()
.Column(“名称”,Column=>Column.WithLength(50))
.Column(“货币”,Column=>Column.WithLength(50))
.栏(“流动性”)
.栏(“月份”)
.Column(“url”,Column=>Column.WithLength(50))
);
返回1;
}
public int UpdateFrom1()
{
ContentDefinitionManager.AlterPartDefinition(“DepositorPartRecord”,part=>part
.Attachable());
返回2;
}
}
DepositPartHandler.cs:

public class DepositPartHandler : ContentHandler
{
    public DepositPartHandler(IRepository<DepositPartRecord> repository)
    {
        Filters.Add(StorageFilter.For(repository));
    }
}
公共类DepositPartHandler:ContentHandler
{
公共DepositorPartHandler(IRepository存储库)
{
Filters.Add(StorageFilter.For(repository));
}
}
DepositorPartDriver.cs:

public class DepositPartDriver : ContentPartDriver<DepositPart>
{
    protected override string Prefix
    {
        get { return "Deposit"; }
    }

    protected override DriverResult Display(DepositPart part, string displayType, dynamic shapeHelper)
    {
        return ContentShape("Parts_Deposit", () => shapeHelper.Parts_Deposit());
    }

    protected override DriverResult Editor(DepositPart part, dynamic shapeHelper)
    {
        return ContentShape("Parts_Deposit_Edit", () => shapeHelper
            .EditorTemplate(TemplateName: "Parts/Deposit", Model: part, Prefix: Prefix));
    }

    protected override DriverResult Editor(DepositPart part, IUpdateModel updater, dynamic shapeHelper)
    {
        updater.TryUpdateModel(part, Prefix, null, null);
        return Editor(part, shapeHelper);
    }
}
公共类DepositPartDriver:ContentPartDriver
{
受保护重写字符串前缀
{
获取{返回“存款”;}
}
受保护的覆盖驱动器结果显示(DepositPart、字符串显示类型、动态形状帮助)
{
返回ContentShape(“Parts_Deposit”,()=>shapeHelper.Parts_Deposit());
}
受保护的覆盖驱动程序结果编辑器(DepositPart零件,动态形状帮助器)
{
返回ContentShape(“零件存放编辑”,()=>shapeHelper
.EditorTemplate(TemplateName:“零件/存放”,型号:零件,前缀:前缀));
}
受保护的重写驱动程序结果编辑器(DepositorPart、IUpdateModel更新程序、动态形状帮助程序)
{
TryUpdateModel(部分,前缀,null,null);
返回编辑器(零件、shapeHelper);
}
}
Placement.info

<Placement>
  <Place Parts_Deposit="Content:1"/>
  <Place Parts_Deposit_Edit="Content:2"/>
</Placement>

我在Migration.cs上发现了错误,应该是:

public int UpdateFrom1()
{
    ContentDefinitionManager.AlterPartDefinition("DepositPart", part => part
        .Attachable());
    return 2;
}

能否指定如何创建内容类型?它不在迁移中,所以我假设它来自管理员。是的,没错。我应该通过迁移来创建它吗?如果这是您想要做的,当然,但您不必这么做,那么最终应该不会有什么不同。型号有哪些部件(请给出确切名称)?型号有:通用、存放部件记录、标题