API возвращает ошибку 500 после изменения одного свойства с guid на строку
У меня есть API, который возвращает список объектов. Объект имеет поле типа IEnumerable<String>
, Первоначально поле было заполнено списком строк Guid, заданных в Sitecore как мультилист:
characteristics.VertWilt = item.Fields.Get("vert wilt") != null ? item.Fields.Get("vert wilt").Split(',').Select(f =>f) : null;
Однако вместо этого я хочу получить значения элементов из нескольких списков, а не идентификаторов 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
заполняется так, как должно быть, и поле характеристики. 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? Где бы это нужно было изменить?