Получение URL для элемента, используя GetSiteData в Sharepoint
Я использую web.Site.MakeFullUrl((new SPFieldLookupValue(row["FileRef"] as string).LookupValue))
чтобы получить URL-адрес результатов в запросе GetSiteData.
Для некоторых элементов это работает нормально, но для других я получаю результаты, такие как http://server/Lists/My%20Message%20Board/Test/9_.000 - что всегда 404 с. URL всегда заканчиваются на n_.0000.
Кто-нибудь знает, почему это происходит и как получить правильный URL?
2 ответа
Элементы, генерирующие странный URL, не являются элементами в Библиотеке документов, у которых есть файл, связанный с фактическим SPListItem. "Нормальные" URL-адреса - это URL-адреса файлов в библиотеке документов, странные - это URL-адреса элементов в обычном списке. Просто проверьте тип элемента в webpart / control / xsl, чтобы отобразить результаты.
Если это элемент из обычного списка (со странным URL), просто замените его и сделайте так, чтобы URL выглядел так:
http://server/Lists/My%20Message%20Board/Test/9_.000 должен быть:
http://server/Lists/My%20Message%20Board/Test/AllItems.aspx?ID=ITEMID
Вышеприведенный совет Колина кажется правильным, за исключением того факта, что "хороший" URL должен ссылаться на Dispform.aspx. Например,
URL,
http://server/Lists/My%20List/2%5F.000
Должен быть отформатирован так: