我有一个返回对象列表的 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,因为我不希望 Guid 显示在我的页面上。所以我将这一行改为:
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
)."
为什么它期待一个指导?这需要在哪里改变?