我有一个返回对象列表的API。该对象具有IEnumerable<String>
类型的字段。该字段最初填充了Guid字符串列表,在Sitecore中设置为多列表:
characteristics.VertWilt = item.Fields.Get("vert wilt") != null ? item.Fields.Get("vert wilt").Split(',').Select(f =>f) : null;
但是,我想要检索多列表项的值,而不是Guid ID,因为我不想在我的页面上显示Guids。所以我改变了这一行:
characteristics.VertWilt = item.Fields.Get("vert wilt") != null ? item.Fields.Get("vert wilt").Split(',').Select(f => service.GetItem<IDropdownItem>(Guid.Parse(f)).Value) : null;
我的代码执行没有错误。这是API代码:
[HttpPost]
[HttpRoute("applyfilters")]
public HttpResponseMessage ApplyFilters([FromBody] FilterModel filters)
{
VarietySelectorDataHelper helper = new VarietySelectorDataHelper();
var data = helper.SearchVarieties(filters).Select(i => new VarietyModel(i)).OrderBy(v => v.SortOrder);
return Request.CreateResponse(HttpStatusCode.OK, data);
}
data
按原样填充,字段features.VertWilt看起来像option1, option2, option3
而不是3F9F1AFC-4DD7-4445-83E2-CCBBB62BFF78,8A40AF0E-3F79-4060-BD9D-EE0A29CB1D52,B596A791-5917-45B6-BB2F-FE433FEE6039
但是,在控制台中我看到500错误,我的数据没有显示在页面上。我用Firebug来检查错误。
"message": "An error has occurred.",
"exceptionMessage": "Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
)."
为什么期待Guid?哪个需要改变?