2011-12-03 9 views
0

パターンの入っているすべての着信リンクを/marketer/xに変換(書き換え)する必要があります。ここで、xは残りのURLを表します。"/ cpanel /"を "/ marketinger /"に変更するためのASP.NET WebFormsの一般的なルーティング

  1. /cpanel/coupons.aspx/marketer/coupons.aspxから
  2. /cpanel/sold.aspx?year=2010&product=cameraに/marketer/sold.aspx?year=2010 &製品= camera`これは、一般的なURL書き換えのように思える

、私たちはしました:例としては、 HttpContext.Current.RewritePathとHTTPモジュールを使用してそれを行いました。しかし、WebフォームでASP.NETルーティング機能を使用してこれを行うことができるかどうかを知りたいですか?

要件は以下のとおりです。

  1. このルートルール

答えて

1

に関連するURLを生成するためにどのよう

  • ルートルールを定義する方法** COMMENT後に編集**あなたが行うことができます

    これはWebフォームでのルーティングを使用しています。 「マーケティング担当者」の「cpanel」を交換するだけで10,000個のURLを書き換えることができる、望ましい機能を得るには、ワイルドカードを使用する必要があります。あなたのワイルドカードであり、それが最後にURLのその時点からすべてを読むことを意味し

    <%@ Import Namespace="System.Web.Routing" %> 
    
    void RegisterRoutes(RouteCollection routes) 
    { 
        routes.Ignore("{resource}.axd/{*pathInfo}"); 
    
        //--- format ("Name", "Route", "Handler") 
        routes.MapPageRoute("cPanel", "marketer/{*RouteCPanel}", "~/cpanel/{*RouteCPanel}"); 
    } 
    void Application_Start(object sender, EventArgs e) 
    { 
        // Code that runs on application startup 
        RegisterRoutes(RouteTable.Routes); 
    } 
    

    お知らせ{*} RouteCPanel:これを行うには、あなたのGlobal.asaxファイルに次の名前空間とメソッドを追加何があっても。設定方法は「/マーケティング担当者/ ....」のあるURLを置くことができ、「/ cpanel/.....」に書き換えられます。

    がんばろう!

  • +0

    ご協力いただきありがとうございます。しかし、この方法ではDRY(原則を繰り返さないでください)をサポートしていません。クーポンからマーケティング担当者にルーティングする必要のあるページが1万ページあることを想像してみてください。だったらどうしようか? –

    関連する問題