2012-04-08 15 views
1

私は地域のための私のルートの設定を取得しようとしていますし、私は私が許可する必要があり、以下のURLを持っている:処理ルート3

  1. http://localhost/Review/Setup
  2. http://localhost/Review/Setup/65
  3. http://localhost/Review/Setup/_AjaxGetMember?ReviewId=53

エリア=レビュー|コントローラ=セットアップ|アクション=インデックス

は、このようにURLの、彼らはに行く必要があります。ここでは

  1. http://localhost/Review/Setup/Index
  2. http://localhost/Review/Setup/Index/65
  3. http://localhost/Review/Setup/_AjaxGetMember?ReviewId=53

現在、地域のために登録されているルートがあります。

context.MapRoute(
    "Review_default", 
    "Review/{controller}/{action}/{id}", 
    new 
    { 
     action = "Index", 
     id = UrlParameter.Optional 
    } 
); 

今、私の最初のリスト作業では1と3が、URLにはインデックスを入れないと2になりません。これらのURLを機能させるために追加できるものは何ですか?インデックスを追加したりURLに表示したりする必要はありませんか?

ありがとうございます。

答えて

0

はそれを解決しました。私はさらにルートを追加する必要があった。これを行うためのよりエレガントな方法があるかもしれませんが、私はちょうどテストし、それが動作します。

context.MapRoute(
    "Review_default", 
    "Review/{controller}/{id}", 
    new 
    { 
     action = "Index", 
     id = UrlParameter.Optional 
    }, 
    new 
    { 
     id = @"\d*" 
    } 
); 


context.MapRoute(
    "Review_default2", 
    "Review/{controller}/{action}/{id}", 
    new 
    { 
     action = "Index", 
     id = UrlParameter.Optional 
    }, 
    new 
    { 
     action = @"[A-Za-z]+", 
     id = @"\d*" 
    } 
); 

context.MapRoute(
    "Review_default3", 
    "Review/{controller}/{action}/{id}", 
    new 
    { 
     action = "Index", 
     id = UrlParameter.Optional 
    }, 
    new 
    { 
     action = @"_[A-Za-z]+", 
     id = @"\d*" 
    } 
); 
0

私はそれをテストしていないが、それは、私はそれをしようとするだろう方法は次のとおりです。

context.MapRoute(
    "Review_setup_directId", 
    "Review/Setup/{id}", 
    new 
    { 
     controller = "Setup", 
     action = "Index", 
     id = UrlParameter.Optional 
    } 
); 
+0

お試しいただきありがとうございますが、いずれのURLでも動作していません。 – AboutDev