2008-12-03 84 views
1

在ASP.NET中,代字號(〜)被視爲URL中的一個標記,並將相對於應用程序根目錄的路徑作爲前綴。這是衆所周知的功能。在ASP.NET中創建自定義URL令牌(一個MOSS)

在MOSS中,還有其他的標記,例如〜sitecollection/mypath ...,其行爲方式類似,但將路徑視爲相對於網站集根。這是如何完成的?粗略搜索後,我找不到任何有關如何將這種令牌添加到.NET URL解析機制的信息。

回答

5

它可能不是唯一的地方,但SPUtility.GetServerRelativeUrlFromPrefixedUrl()將解析〜site和〜sitecollection的URL。 MOSS還提供SPUrlExpressionBuilder的聲明使用:

<link runat="server" rel="stylesheet" type="text/css" 
     href="<% $SPUrl:~SiteCollection/Style Library/MyStyles/style.css %>" /> 
+0

FWIW,這兩個環節是相同的。這是SPUtility.GetServerRelativeUrlFromPrefixedUrl()的正確鏈接:http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.utilities.sputility.getserverrelativeurlfromprefixedurl.aspx – Abs 2009-01-13 14:54:54

0

我不知道 - 但我敢打賭,代碼被埋在每個請求運行的SharePoint HTTPModules或HTTPHandler之一中。

0

我不認爲它會在那裏,因爲它不是一個通用的標記替換處理程序輸出中的任何地方。它發生在服務器控件的URL解析級別,這讓我認爲它可能在與控件構建或解析有關的類中,但我沒有在那裏找到任何東西。

相關問題