0

特定のパターンに一致するすべてのリクエストを、パターンの一部を使用して構築された場所にリダイレクトするルートを作成したいと考えています。URL の一部のセグメントを取得し、残りを Web フォーム アプリケーションの aspx ページへのパスのように扱いたいと考えています。例えば

RouteTable.Routes.MapPageRoute("SomeRouteName", "{something}/{*path}", "~/pages/{*path}/Default.aspx");

*path には「\」を含むものを指定できます。クエリ文字列は、クエリ文字列として保持する必要があります。

そのようなルートを作成することは可能ですか?

4

2 に答える 2

0

これを行ういくつかの方法を検討した後、次のような独自のルーティング ハンドラーを作成することになりました。

public class SomethingRoutingHandler : IRouteHandler
{
    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        string something = (string)requestContext.RouteData.Values["something"];
        string path = (string)requestContext.RouteData.Values["path"];

        string virtualPath = "~/" + path + "Default.aspx";

        return BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page)) as Page;
    }
}

次に、ページ内の RouteData を使用して何かにアクセスします。これらの記事が役に立ちました:

http://msdn.microsoft.com/en-us/magazine/dd347546.aspx

http://www.xdevsoftware.com/blog/post/Default-Route-in-ASPNET-4-URL-Routing.aspx

于 2011-07-05T14:43:18.647 に答える