在ASP.NET中创建自定义URL令牌(la MOSS)

时间:2008-12-03 16:33:56

标签: asp.net sharepoint moss

在ASP.NET中,代字号(〜)被视为URL中的标记,并将前缀为路径的路径视为相对于应用程序根目录。这是众所周知的功能。

在MOSS中,还有其他令牌,例如~sitecollection / mypath ...其行为方式类似,但将路径视为相对于网站集根目录。这是如何完成的?在粗略搜索之后,我找不到任何关于如何将这样的标记添加到.NET URL解析机制的信息。

3 个答案:

答案 0 :(得分:5)

它可能不是唯一的地方,但SPUtility.GetServerRelativeUrlFromPrefixedUrl()会使用~site和~sitecollection解析网址。 MOSS还提供SPUrlExpressionBuilder用于声明性使用:

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

答案 1 :(得分:0)

我不确定 - 但我敢打赌代码隐藏在为每个请求运行的SharePoint HTTPModules或HTTPHandler之一。

答案 2 :(得分:0)

我不认为它会在那里,因为它不是在处理程序的输出中的任何地方替换的通用令牌。它发生在服务器控件中的URL解析级别,这让我觉得它可能在与控件构建或解析相关的类中的某个位置,但我没有在那里找到任何东西。