Создание пользовательских URL-токенов в ASP.NET (а-ля MOSS) - PullRequest
1 голос
/ 03 декабря 2008

В ASP.NET тильда (~) обрабатывается как токен в URL-адресах и обрабатывает пути с префиксом, относящиеся к корню приложения. Это хорошо известная функциональность.

В MOSS есть другие токены, такие как ~ sitecollection / mypath ..., которые ведут себя аналогичным образом, но трактуют путь относительно корня семейства сайтов. Как это достигается? После беглого поиска я не смог найти никакой информации о том, как добавить токены, подобные этому, в механизм разрешения URL .NET.

Ответы [ 3 ]

5 голосов
/ 12 января 2009

Возможно, это не единственное место, но SPUtility.GetServerRelativeUrlFromPrefixedUrl () будет анализировать URL-адреса с ~ site и ~ sitecollection. MOSS также предоставляет SPUrlExpressionBuilder для декларативного использования:

<link runat="server" rel="stylesheet" type="text/css"
      href="<% $SPUrl:~SiteCollection/Style Library/MyStyles/style.css %>" />
0 голосов
/ 03 декабря 2008

Я не думаю, что это было бы там, поскольку это не универсальный токен, замененный где-либо в выводе обработчика. Это происходит на уровне разрешения URL в серверном элементе управления, что наводит меня на мысль, что это могло быть где-то в классах, связанных со сборкой или анализом элементов управления, но я там ничего не нашел.

0 голосов
/ 03 декабря 2008

Не знаю точно, но я бы поспорил, что код скрыт в одном из HTTPModules SharePoint или HTTPHandlers, которые выполняются для каждого запроса.

...