2012-06-13 41 views
0

我已經定義了此路線圖。在Asp.net中添加另一條路線mvc3不起作用

routes.MapRoute("default", // route name 
      "{controller}/{action}/{id}", // url with parameters 
      new { controller = "home", action = "index", id = UrlParameter.Optional }, // parameter defaults 
      new string[] { "mobilesurveys.mt.controllers" } 
     ); 

這會很好地工作。現在我想添加另一個路由圖

routes.MapRoute("couponreedem", // route name 
      "{controller}/{action}/{clientname}", // url with parameters 
      new { controller = "Rc", action = "index", id = UrlParameter.Optional }, // parameter defaults 
      new string[] { "mobilesurveys.mt.controllers" } 
     ); 

我已經定義了這樣。這裏Rc是我的控制器。而我給的網址定義爲

public ActionResult Rc(string clientname) 
    { 

     viewModel =dataRc.ProductCategoryGet(); 
     return View(viewModel); 
    } 

CLIENTNAME將永遠空 的.com/RC/RC /薩米

和方法在控制器中。如何在現有路線不受干擾的情況下添加另一條路線。

謝謝。

+1

好像都你的路線是一樣的,爲什麼你需要第二個? –

+0

除非你把參數設置爲「clientname」而不是「id」 - 否則我會堅持使用「id」,而不需要定義第二條路線(couponreedem)。否則,修復您的第二個路線圖中的參數(couponreedem) - 將「id = Url.Paremeter.Optional」更改爲「clientname = Url.Paremeter.Optional」。另外,除非您使用「Areas」,否則不需要爲控制器指定命名空間。 – anAgent

回答

1

它實際上看起來完全相同。但是,如果你想要一個新的,你可以嘗試這樣的事情,它應該高於默認的。

routes.MapRoute("couponreedem", // route name 
      "RC/{action}/{clientname}", // url with parameters 
      new { controller = "Rc", action = "index", clientname = UrlParameter.Optional }, // parameter defaults 
      new string[] { "mobilesurveys.mt.controllers" } 
     ); 

將修復與RC路線/ ... 另外你的行動應該被命名爲指數

public ActionResult Index (string clientname) 
    { 

     viewModel =dataRc.ProductCategoryGet(); 
     return View(viewModel); 
    } 
相關問題