MVC更改URL路由

时间:2013-04-26 21:58:28

标签: c# asp.net-mvc url view asp.net-mvc-routing

我刚观看了有关ASP.NET MVC 3中URL路由的Pluralsight视频。我仍然有点困惑。

enter image description here

该图像显示了我的观看方式。我为每个视图都有一个控制器。也许我误解了一些东西,但是当我这样做时,我想通过添加投资组合视图和控制器而不是去/ home / portfolio它只会把我带到/投资组合,但事实并非如此。现在,当我点击投资组合链接时,它会将我带到/ portfolio / portfolio。

我是否误解了路由在ASP.NET中的工作方式或我忘记了什么?

3 个答案:

答案 0 :(得分:3)

它会将您带到Portfolio/Portfolio,因为这就是您为设置命名的方式。第一个是控制器的名称(名称中没有控制器)PortfolioController。第二个是ActionResultPortfolio的名称,返回Portfolio.cshtml。如果您只希望看到/Portfolio,则可以始终使用PortfolioController

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

然后将Portfolio.cshtml重命名为Index.cshtml,您应该好好去。

答案 1 :(得分:1)

当你有localhost / portfolio时,你将调用默认情况下为Index的默认操作,你会看到该视图,因为你没有查看,你可以制作一个 您可以通过/ portfolio / portfolio

访问投资组合控制器中的投资组合操作

因为它遵循app_start文件夹

中routConfig.cs中的默认路由

如果您想使用/ portfolio获得/ portfolio / portfolio的相同结果,您可以在routeconfig中添加这样的路由

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

在默认路由之前要小心写,因为当它与第一个路由匹配时,它不会检查其他

抱歉,我的英语不好

答案 2 :(得分:0)

将操作和视图重命名为Index。