我想在SharePoint網站上設置一些友好的URL。我知道我可以使用RewritePath來實現ASP.Net 2.0友好的URL,但我想知道是否可以使用ASP.NET 3.5 SP1附帶的System.Web.Routing。使用ASP.Net 3.5 SP1路由與SharePoint 2007
我想我已經想出瞭如何讓我的路由表加載,但我不清楚使用什麼方法來獲得正確的IHttpHandler傳出。
謝謝!
我想在SharePoint網站上設置一些友好的URL。我知道我可以使用RewritePath來實現ASP.Net 2.0友好的URL,但我想知道是否可以使用ASP.NET 3.5 SP1附帶的System.Web.Routing。使用ASP.Net 3.5 SP1路由與SharePoint 2007
我想我已經想出瞭如何讓我的路由表加載,但我不清楚使用什麼方法來獲得正確的IHttpHandler傳出。
謝謝!
我最終採取了瑞恩什麼:
var route = new Route("blah/{*path}", new MyRouteHandler());
RouteTable.Routes.Add(route);
public class MyRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
//rewrite to some know sharepoint path
HttpContext.Current.RewritePath("~/Pages/Default.aspx");
// return some HTTP handler here
return new DefaultHttpHandler();
}}
這似乎爲我工作正常。
它應該像下面一樣簡單。
var route = new Route("blah/{*path}", new MyRouteHandler());
RouteTable.Routes.Add(route);
public class MyRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
// return some HTTP handler here
}
}
然後在web.config中的HTTP模塊下注冊System.Web.Routing.UrlRoutingModule,你應該很好。
<add name="Routing" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
我被要求將此作爲共享點評估過程的一部分。
我的理解是,uri模板本質上是主機名,後面是遞歸文件夾結構。
由於共享點截斷了255個字符的uri,這樣會更加複雜。所以如果你有一個特別深的或冗長的文件夾結構,那麼你的URI可能會失效。
我正在考慮通過遵循人們可讀的約定,並轉換爲共享點約定,從根本上美化/整理uri。即:
http://myhostname.com/docs/human-resources/case-files/2009/reviews/ed-blackburn.docx
轉換爲共享點:
http://myhostname.com/human%20resources/case%20files/2009/reviews/ed%20blackburn.docx
任何額外所需的服務可以由控制器來控制。
如果超過255個字符,某種tinyurl方法將是我最初的建議。
嗨,瑞安,很高興見到你。這是很容易的部分。困難的部分是找出什麼Http處理程序返回。 – Bryant 2008-09-24 16:14:56
有沒有人找到一種方法來返回將與SharePoint一起工作的HTTPHandler? – 2009-07-03 00:32:23