1

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

在此处输入图像描述

该图像显示了我的视图是如何设置的。每个视图都有一个控制器。也许我误解了一些东西,但是当我这样做时,我想通过添加 Portfolio 视图和控制器而不是转到 /home/portfolio 它只会带我到 /portfolio 但它没有。现在,当我单击投资组合链接时,它会将我带到 /portfolio/portfolio。

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

4

3 回答 3

3

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

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

然后重命名Portfolio.cshtmlIndex.cshtml,你应该很高兴。

于 2013-04-26T22:02:42.673 回答
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" }
            );

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

对不起我的英语不好

于 2013-04-26T22:34:59.720 回答
0

将操作和视图重命名为索引。

于 2013-04-26T22:00:32.270 回答