2012-04-08 60 views
1

我試圖讓我的路線設置爲一個區域,我有我需要允許下列網址:搬運路線3

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

Area = Review |控制器=設置|行動=指數

這樣的網址,就應該去:

  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工作,但是2並沒有將索引放入URL中。我還可以添加哪些內容以使這些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

感謝您的嘗試,但沒有顯示任何網站的工作。 – AboutDev 2012-04-08 06:24:36