2

SharePoint Web サイトでわかりやすい URL を設定しようとしています。RewritePath を使用して ASP.Net 2.0 に適した URL を作成できることはわかっていますが、ASP.NET 3.5 SP1 に付属する System.Web.Routing を使用できるかどうか疑問に思っていました。

ルート テーブルをロードする方法は理解できたと思いますが、正しい IHttpHandler を渡すためにどの方法を使用すればよいかわかりません。

ありがとう!

4

3 に答える 3

1

私は、Share Point の評価プロセスの一環として、これを調べるように依頼されました。

私の理解では、uri テンプレートは基本的にホスト名であり、その後に再帰的なフォルダー構造が続きます。

これは、Share Point が uri を 255 文字で切り捨てるため、さらに複雑になります。したがって、フォルダー構造が特に深いか冗長である場合、uri が無効になる可能性があります。

私は本質的に、人間が読める規則に従って uri をきれいにする/整理し、Share Point 規則に変換することを考えていました。すなわち:

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 アプローチが私の最初の提案です。

于 2009-01-06T17:04:42.883 に答える
0

私はライアンが持っていたものを取ることになった:

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();  

}}

それは私にとってはうまくいくようです。

于 2009-07-04T13:43:57.423 に答える
0

以下のように簡単なはずです。

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"/>
于 2008-09-24T15:31:29.300 に答える