我有两种文档类型:
表单文档类型有一个名为字段的属性,它是 Nested Content 数据类型,其中包含 FormField 文档类型。我正在尝试以编程方式(在SurfaceController中)创建 FormField 并将其添加到表单文档类型的 Fields 属性。
以下是我尝试使用的代码:
var newFormFields = new List<Umbraco.Core.Models.IContent>();
int i = 0;
foreach (var formField in model.Fields)
{
string fieldName = string.Format("Field {0}", i);
var newFormField = contentService.CreateContent(fieldName, newFormSubmission.Id, "formFieldSubmission", formNode.CreatorId);
newFormField.SetValue("fieldName", formField.Name);
newFormField.SetValue("fieldType", formField.Type);
newFormField.SetValue("manditory", formField.Manditory);
newFormField.SetValue("fieldValue", formField.Value);
newFormFields.Add(newFormField);
++i;
}
newFormSubmission.SetValue("fields", newFormFields);
var status = contentService.SaveAndPublishWithStatus(newFormSubmission, formNode.CreatorId, raiseEvents: false);
在newFormSubmission.SetValue("fields", newFormFields);
行,它会抛出此异常:
'umbraco.Core.Models.ContentBase.SetPropertyValue(string,string)'的最佳重载方法匹配有一些无效的参数
任何人都有任何想法如何在 Nested Content 数据类型中存储DocumentTypes列表?
PS:我使用的是 Umbraco版本7.4.0程序集:1.0.5885.31226
Lee Kelleher指出了我在this post on the umbraco forms中制定自己的解决方案的正确方向。我希望在这个项目之后有时间来完善我的解决方案并向项目提交拉取请求。
我基本上最终创建了一些扩展方法,这些方法接受IEnumerable<IContent>
并返回NestedContent plugin对象的JSON表示。
答案 0 :(得分:0)
似乎SetPropertyValue
方法的第二个参数需要string
而你传递List<Umbraco.Core.Models.IContent>
答案 1 :(得分:0)