맞춤 모듈이 있습니다. Migrations.cs는 다음과 같습니다.콘텐츠 오류 만들기 - 지정된 캐스트가 유효하지 않습니다.
public int Create()
{
SchemaBuilder.CreateTable("MyModuleRecord", table => table
.ContentPartRecord()
...
);
ContentDefinitionManager.AlterPartDefinition(
typeof(MyModulePart).Name, cfg => cfg.Attachable());
ContentDefinitionManager.AlterTypeDefinition("MyModule",
cfg => cfg
.WithPart("MyModulePart")
.WithPart("CommonPart")
.Creatable()
);
return 1;
}
이것은 컨트롤러에있는 코드입니다.
var newcontent = _orchardServices.ContentManager.New<MyModulePart>("MyModule");
...
_orchardServices.ContentManager.Create(newcontent);
나는 Orchard.ContentManagement ContentCreateExtensions에서이 새로운 방법에서 잘못된 캐스트 오류가 발생합니다.
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 class MyModuleHandler : ContentHandler
{
public MyModuleHandler(IRepository<MyModuleRecord> repository)
{
Filters.Add(StorageFilter.For(repository));
}
}
당신이 당신의 드라이버/핸들러 코드를 게시 할 수 : 당신이
ActivatingFilter
에 당신의 부분의 핸들러 클래스가 명시 적으로 링크를 만들 것입니다 추가 드라이버가없는 그러나 이후? – mdm
드라이버가 없습니다. 게시물을 처리기 코드로 업데이트했습니다. – user471317