我刚观看了有关ASP.NET MVC 3中URL路由的Pluralsight视频。我仍然有点困惑。
该图像显示了我的观看方式。我为每个视图都有一个控制器。也许我误解了一些东西,但是当我这样做时,我想通过添加投资组合视图和控制器而不是去/ home / portfolio它只会把我带到/投资组合,但事实并非如此。现在,当我点击投资组合链接时,它会将我带到/ portfolio / portfolio。
我是否误解了路由在ASP.NET中的工作方式或我忘记了什么?
答案 0 :(得分:3)
它会将您带到Portfolio/Portfolio
,因为这就是您为设置命名的方式。第一个是控制器的名称(名称中没有控制器)PortfolioController
。第二个是ActionResult
,Portfolio
的名称,返回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。