Извлечение URL SharePoint для SPListItem

Вы используете неправильную перегрузку метода Html.ActionLink .

Вы используете эту перегрузку ActionLink(HtmlHelper, String, String, Object) , третий параметр - значения маршрута, нет htmlAttributes.

Вы должны использовать перегрузку ActionLink(HtmlHelper, String, String, Object, Object) , здесь третьим параметром являются значения маршрута, но четырьмя являются htmlAttributes

Так что вам просто нужно передать ноль в третий параметр [ 1112]

@Html.ActionLink("Back", "Index", null, new {id="backbtn"})

14
задан GEOCHET 4 March 2009 в 20:14
поделиться

4 ответа

Можно извлечь фактическое Url и Description от значения столбца этот путь:

SPFieldUrlValue fieldValue = new SPFieldUrlValue(myItem["URL"].ToString());

string linkTitle = fieldValue.Description;

string linkUrl = fieldValue.Url;
26
ответ дан 1 December 2019 в 07:52
поделиться

Поскольку на самом низком уровне, все поля Sharepoint хранятся как строки. Метод GetFieldValue SPField признает, что строка, и именно до логики того полевого класса чтения представляет в виде строки и преобразовывает его в значимый объект значения.

объект ["Имя поля"] возвращает родовой объект, который представляет значение поля. Отдельно объект обычно бесполезен, за исключением необработанного строкового представления данных.

При использовании GetFieldValueAsHtml () метод он возвратится <a href="url">title</a>:

//if field is of type Hyperlink, returns <a href="url">title</a>
item.Fields["FieldName"].GetFieldValueAsHtml(item["FieldName"])

Или

//if field is of type Hyperlink, returns Url, Title
item.Fields["FieldName"].GetFieldValueAsText(item["FieldName"])

Или

//if field is of type Hyperlink, returns Url
item.Fields["FieldName"].GetValidatedString(item["FieldName"])
6
ответ дан 1 December 2019 в 07:52
поделиться

Именно так SharePoint хранит ссылки. Сначала URL и затем Заголовок это на самом деле показывают на странице.

Из документации SharePoint:

"Поле URL исключительно состоит из двух строк, разделенных запятой и пространством. Одна строка содержит путь URL, и другой содержит описание, используемое в качестве связанного гиперссылками текста".

Необходимо разделить строку для получения двух частей.

string url = field["URL"].Split(',')[0];
string title = field["URL"].Split(',')[1];

Код не оптимален, но только показать Вам точно, что я имею в виду.

Oliver, Вы не указывали версию SharePoint. Мой ответ является на 2003 версией. Если Вы имеете MOSS, смотрите на классы SPFieldUrl и SPFieldUrlValue.

0
ответ дан 1 December 2019 в 07:52
поделиться

Свойство URL-адреса SPListItem возвращает URL-адрес для SPListItem, включая имя библиотеки List / Documetn, но не возвращает полный URL-адрес, включая имена серверов и сайтов.

Чтобы получить полный URL-адрес, вы можете либо объединить SPLIstItem.Web.Url и SPListItem.URL, либо извлечь полный URL-адрес из данных SPListItem.XML следующим образом:

foreach (SPListItem item in list.Items)
{
  XmlDocument xmlDoc = new XmlDocument();
  xmlDoc.LoadXml(item.Xml);

  XmlNamespaceManager nsm = new XmlNamespaceManager(xmlDoc.NameTable);
  nsm.AddNamespace("z", "#RowsetSchema");

  string fullURL = xmlDoc.SelectSingleNode("z:row", nsm).Attributes["ows_EncodedAbsUrl"].Value;
}

http://insomniacgeek.com/code/how-to -get-the-full-url-from-splistitem-in-sharepoint /

2
ответ дан 1 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: