果园内容类型为空

果园内容类型为空

本文介绍了果园内容类型为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是果园模块开发的新手.我创建了一个模块.当我尝试保存数据时.我使用此代码保存数据

i am new in orchard module development.i create a module.when i try to save data.i use this code fore save data

    public ActionResult Create(FormCollection input)
    {
        var product = contentManager.New<ProductPart>("Product");
        product.EmployeeName = input["EmployeeName"];
        product.EmployeeFathersName = input["EmployeeFathersName"];
        product.DOB = Convert.ToDateTime(input["DOB"]);
        product.Email = input["Email"];
        product.Address = input["Address"];
        product.JoiningDate = Convert.ToDateTime(input["JoiningDate"]);

        if (!ModelState.IsValid)
        {
            return View(product);
        }

        contentManager.Create(product);

        return RedirectToAction("Index");
    }

我在模型中使用的这个类

this class i use in Model

public class ProductRecord:ContentPartRecord
{
    public virtual string EmployeeName { get; set; }

    public virtual string EmployeeFathersName { get; set; }
    public virtual DateTime DOB { get; set; }
    public virtual string Email { get; set; }
    public virtual string Address { get; set; }
    public virtual DateTime JoiningDate { get; set; }
}

public class ProductPart : ContentPart<ProductRecord>
{
    /*
    public int Id
    {
        get { return Record.Id; }
        set{Record.Id = value;}
    }
    */

    [Required]
    public string EmployeeName
    {
        get { return Record.EmployeeName; }
        set { Record.EmployeeName = value; }
    }

    [Required]
    public string EmployeeFathersName
    {
        get { return Record.EmployeeFathersName; }
        set { Record.EmployeeFathersName = value; }
    }

    [Required]
    public DateTime DOB
    {
        get { return Record.DOB; }
        set { Record.DOB = value; }
    }
    [Required]
    public string Email
    {
        get { return Record.Email; }
        set { Record.Email = value; }
    }
    [Required]
    public string Address
    {
        get { return Record.Address; }
        set { Record.Address = value; }
    }
    [Required]
    public DateTime JoiningDate
    {
        get { return Record.JoiningDate;}
        set { Record.JoiningDate = value; }
     }

}

我使用内容类型产品",但是当它在下面的方法中进入果园 ContentCreateExtension

i use content type "Product" but when it goes orchard ContentCreateExtension in belows method

   public static T New<T>(this IContentManager manager, string contentType) where T : class, IContent {
        var contentItem = manager.New(contentType);
        if (contentItem == null)
            return null;

        var part = contentItem.Get<T>();
        if (part == null)
            throw new InvalidCastException();

        return part;
    }

这里我面临 var 部分为空,这意味着它的内容部分为空.
请帮帮我....

here i face var part is null that means it content part is null.
please help me....

推荐答案

除了 Nicholas 的回答之外,我还想提一下,缺少 ProductPart 的驱动程序会导致此类错误.确保您至少定义了空驱动程序.

In addition to the Nicholas answer, I want to mention, that missing driver for the ProductPart can cause such error. Make sure, that you have at least empty driver defined.

public class ProductPartDriver : ContentPartDriver<ProductPart> {}

这篇关于果园内容类型为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-30 08:01