Orchardcms Orchard内容类型为空
我是orchard模块开发的新手。当我试图保存数据时,我创建了一个模块。 我使用此代码保存数据Orchardcms Orchard内容类型为空,orchardcms,Orchardcms,我是orchard模块开发的新手。当我试图保存数据时,我创建了一个模块。 我使用此代码保存数据 public ActionResult Create(FormCollection input) { var product = contentManager.New<ProductPart>("Product"); product.EmployeeName = input["EmployeeName"]; product.E
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");
}
公共操作结果创建(FormCollection输入)
{
var product=contentManager.New(“产品”);
product.EmployeeName=输入[“EmployeeName”];
product.EmployeeFathersName=输入[“EmployeeFathersName”];
product.DOB=Convert.ToDateTime(输入[“DOB”]);
product.Email=输入[“Email”];
product.Address=输入[“地址”];
product.JoiningDate=Convert.ToDateTime(输入[“JoiningDate”]);
如果(!ModelState.IsValid)
{
返回视图(产品);
}
创建(产品);
返回操作(“索引”);
}
我在模型中使用的这个类
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; }
}
}
公共类ProductRecord:ContentPartRecord
{
公共虚拟字符串EmployeeName{get;set;}
公共虚拟字符串EmployeeFatherName{get;set;}
公共虚拟日期时间DOB{get;set;}
公共虚拟字符串电子邮件{get;set;}
公共虚拟字符串地址{get;set;}
公共虚拟日期时间连接日期{get;set;}
}
公共类ProductPart:ContentPart
{
/*
公共整数Id
{
获取{return Record.Id;}
设置{Record.Id=value;}
}
*/
[必需]
公共字符串EmployeeName
{
获取{return Record.EmployeeName;}
设置{Record.EmployeeName=value;}
}
[必需]
公共字符串EmployeeFatherName
{
获取{return Record.EmployeeFathersName;}
设置{Record.EmployeeFathersName=value;}
}
[必需]
公共日期时间
{
获取{return Record.DOB;}
设置{Record.DOB=value;}
}
[必需]
公共字符串电子邮件
{
获取{return Record.Email;}
设置{Record.Email=value;}
}
[必需]
公共字符串地址
{
获取{返回记录.地址;}
设置{Record.Address=value;}
}
[必需]
公共日期时间连接日期
{
获取{return Record.JoiningDate;}
设置{Record.JoiningDate=value;}
}
}
我使用内容类型“Product”,但当它在belows方法中变为orchard ContentCreateExtension时
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;
}
public static T New(此IContentManager,字符串contentType),其中T:class,IContent{
var contentItem=manager.New(contentType);
if(contentItem==null)
返回null;
var part=contentItem.Get();
if(part==null)
抛出新的InvalidCastException();
返回部分;
}
这里,我面对的var部分为空,这意味着它的内容部分为空。请帮助我……您是否设置了迁移类 i、 e 您还设置了存储库吗 i、 e
公共类ProductPartHandler:ContentHandler{
public ProductPartHandler(IRepository存储库){
Filters.Add(StorageFilter.For(repository));
}
除了Nicholas的回答之外,我想提到的是,ProductPart缺少驱动程序可能会导致此类错误。请确保至少定义了空驱动程序
public class ProductPartDriver : ContentPartDriver<ProductPart> {}
公共类ProductPartDriver:ContentPartDriver{}
刚刚经历了类似的情况,请确保将处理程序类声明为public。这一类已经让我烦恼了好几次。
public class ProductPartHandler : ContentHandler {
public ProductPartHandler(IRepository<ProductPartRecord> repository) {
Filters.Add(StorageFilter.For(repository));
}
public class ProductPartDriver : ContentPartDriver<ProductPart> {}