将相关媒体添加到Sitefinity中的动态内容
问题描述:
今天,我收到错误“对象必须实现IConvertible”。当我尝试将相关媒体项目添加到动态内容时,我将Ajax上传到Sitefinity Administrator。这是代码。将相关媒体添加到Sitefinity中的动态内容
var doctorType = TypeResolutionService.ResolveType(ConstUtil.DoctorType);
var liveItem = dynamicModuleManager.GetDataItem(doctorType, Authentication.Id);
dynamicModuleManager.Provider.SuppressSecurityChecks = true;
var masterItem = dynamicModuleManager.Lifecycle.GetMaster(liveItem) as DynamicContent;
var cultureName = CurrentCulture;
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
var draftItem = dynamicModuleManager.Lifecycle.CheckOut(masterItem) as DynamicContent;
if (draftItem == null)
{
return new HttpResponseMessage
{
Content = new JsonContent(new { Result = false })
};
}
var newImage = UploadImage(model);
if (newImage != null)
{
//var contentLink = new ContentLink(newImage.Parent.Id, newImage.Id);
//draftItem.SetValue("photo" , NewImage);
}
//现在我们需要检查,所以更改适用
var checkInDoctorItem = dynamicModuleManager.Lifecycle.CheckIn(draftItem);
dynamicModuleManager.Lifecycle.Publish(checkInDoctorItem);
dynamicModuleManager.SaveChanges();
我尝试通过两种方式
1) draftItem.AddImage("photo", newImage); It still get same Error
2) draftItem.CreateRelation(newImage, CustomFieldName.DoctorProfilePhoto);
来修复这个错误它没有得到一个错误,但它不能将新图像保存到目标。
所以我使用Sitefinity 7.0,请帮我解决它。
答
我争吵了一个类似的问题。执行步骤:
1 - 将图像上传到图书馆。这篇文章有几个有效的例子,这将有助于得到正确的图像上传:http://www.sitefinity.com/developer-network/forums/general-discussions-/add-images-to-the-library-programatically
2 - 呼叫draftItem.CreateRelation(图像,字段名)方法就像你有以上
3 - 发布
dynamicModuleManager.Lifecycle.Publish(checkInDoctorItem);
draftItem.SetWorkflowStatus(dynamicModuleManager.Provider.ApplicationName, "Published");
dynamicModuleManager.SaveChanges();
非常感谢你,这对我很有帮助 – David 2014-09-24 09:14:53