我需要显示对最终用户管理的Sitefinity 10表单的响应,而我无法控制向表单中添加哪些字段以及添加多少字段。
我可以访问表单和表单条目的GUID,并且设法将它们都检索出来,但是我找不到找到在表单中插入哪些字段以及如何获取条目值的方法
到目前为止我所拥有的:
Guid formId = TODO; // Comes from outside.
Guid entryId = TODO; // Comes from outside.
FormsManager manager = FormsManager.GetManager();
FormDescription description = manager.GetForm(formId);
FormEntry entry = manager.GetFormEntry(description.EntriesTypeName, entryId);
我只能在Sitefinity的论坛上找到a discussion,但这似乎仅适用于先前版本:在10中,Controls
属性似乎不再包含该帖子所说的内容。
论坛中建议的代码为:
var fields =
description
.Controls
.Where(control => control.Properties.Any(b => b.Name == "MetaField"))
.Select(control => new
{
control.Id,
Name =
control
.Properties
.Single(property => property.Name == "MetaField")
.ChildProperties
.Single(property => property.Name == "FieldName")
.Value,
Title =
control
.Properties
.Single(property => property.Name == "Title")
.Value
})
.ToList();