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? Где бы это нужно было изменить?

0 ответов

Другие вопросы по тегам