2013-04-26 497 views
1

我剛剛在ASP.NET MVC 3中觀看了URL路由中的Pluralsight視頻。我仍然有點困惑。MVC更改URL路由

enter image description here

這種形象展示我的看法是如何設置的。我爲每個視圖都有一個控制器。也許我誤解了一些東西,但是當我這樣做時,我想通過添加投資組合視圖和控制器而不是去/ home/portfolio,它只需要我/投資組合,但它沒有。現在當我點擊投資組合鏈接時,我需要到/投資組合/投資組合。

我誤解了有關在ASP.NET中路由工作的方式,或者我只是忘記了一些東西?

回答

3

它會帶您到Portfolio/Portfolio,因爲這就是您命名設置的方式。第一個是您的控制器的名稱(名稱中沒有控制器)PortfolioController。第二個是你的名字ActionResultPortfolio,它返回Portfolio.cshtml。如果你希望只看到/Portfolio你總是可以有PortfolioController使用

public ActionResult Index(){ return View(); } 

,然後重命名Portfolio.cshtmlIndex.cshtml,你應該是好去。

+0

好吧,那現在的工作我也是剛剛纔弄清楚如何更改_Layout.cshtml中的ActionLink指向新的鏈接,因爲它指向舊的/投資組合/投資組合 – tylerbhughes 2013-04-26 22:06:09

+0

沒關係,我明白了。 – tylerbhughes 2013-04-26 22:09:00

0

將動作和視圖重命名爲Index。

0

當您有本地主機/投資組合時,您將調用默認操作的投資組合,默認情況下這將是索引,您將看到該視圖,因爲您沒有該視圖,您可以使用一個 訪問您的在你的投資組合控制器系列動作由/組合/資產組合

因爲它遵循默認路由,如果你想獲得/組合相同的結果是在app_start文件夾

routConfig.cs /組合只是/你可以在你的路由配置中添加這樣的路由

routes.MapRoute(
      name: "portfolio", 
      url: "portfolio/{action}", 
      defaults: new { Controller = "portfolio", Action = "portfolio" } 
      ); 

小心編寫默認之前的路線,因爲當它匹配的第一個路由,將不檢查其他

對不起我的英文不好