将相关媒体添加到Sitefinity中的动态内容

时间:2014-09-11 04:14:51

标签: sitefinity dynamic-content

今天,我收到错误“对象必须实现IConvertible”。当我尝试将相关媒体项添加到动态内容时,我有Ajax将图像上传到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 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。执行步骤:

1 - 将图像上传到库中。本文有几个有效示例,可帮助您正确上传图片:http://www.sitefinity.com/developer-network/forums/general-discussions-/add-images-to-the-library-programatically

2 - 像上面一样调用draftItem.CreateRelation(image,fieldName)方法

3 - 发布

dynamicModuleManager.Lifecycle.Publish(checkInDoctorItem);
draftItem.SetWorkflowStatus(dynamicModuleManager.Provider.ApplicationName, "Published");
dynamicModuleManager.SaveChanges();
相关问题