РЕДАКТИРОВАТЬ: перефразировать проблему
Я думаю, что это либо ошибка, либо я делаю что-то не так.
- Я добавляю поле к типу Blogpost. Это поле имеет тип Contentpicker. Я называю это связанной страницей.
- Затем я создаю обычные страницы (ContentType Page).
- Я создаю 4 сообщения в блоге. Два сообщения в блоге получают PageOne как выбранное значение в поле RelatedPage. Два других сообщения получают PageTwo как выбранное значение в RelatedPage.
- Теперь я создаю запрос с фильтром ContentType — BlogPost. И фильтр с записью в блоге. Связанная страница равна {21} (это идентификатор PageOne).
Я ожидаю получить результаты BlogPostOne и BlogPostTwo. Вместо этого я не получаю результатов. На самом деле я хотел, чтобы идентификатор страницы извлекался со страницы, на которой размещен виджет, но не мог заставить его работать, поэтому я уменьшил обратно до предопределенного значения вместо динамического для фильтра. Но, как я уже сказал, никаких результатов.
Итак, неправильный ли запрос и как мне это сделать тогда. Или есть ошибка с фильтрами для полей ContentPicker.
P.S. Я также отправлю вопрос в Codeplex.
ОБНОВЛЕНИЕ В Tokenizer все значения, содержащие { }, рассматриваются как токены и поэтому заменяются. Проблема в том, что идентификаторы элементов контента в поле выбора контента хранятся с похвалами. Таким образом, при наличии {21} в качестве значения для фильтра 21 становится токенизированным, и, поскольку для этого токена нет значения, значение становится пустым. При пропуске токенизатора он работает (во время отладки). Но нельзя пропустить токенизатор, потому что присутствие токена вполне законно. Поэтому я считаю, что есть ошибка либо с токенизатором, либо с тем, как идентификаторы хранятся в поле contentitem для ContentPicker. Я думаю, что это можно решить, изменив средство выбора контента для хранения чисел, разделенных запятыми, но без похвал.