将相关媒体添加到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(); 
+0

非常感谢你,这对我很有帮助 – David 2014-09-24 09:14:53