C# MVC更改URL路由
我刚刚在ASP.NET MVC 3中观看了关于URL路由的Pluralsight视频。我还是有点困惑 该图显示了如何设置我的视图。每个视图都有一个控制器。也许我误解了什么,但当我这么做的时候,我想通过添加公文包视图和控制器,而不是去/home/Portfolio,它只会把我带到/Portfolio,但事实并非如此。现在,当我点击公文包链接时,它会将我带到/portfolio/portfolioC# MVC更改URL路由,c#,asp.net-mvc,url,view,asp.net-mvc-routing,C#,Asp.net Mvc,Url,View,Asp.net Mvc Routing,我刚刚在ASP.NET MVC 3中观看了关于URL路由的Pluralsight视频。我还是有点困惑 该图显示了如何设置我的视图。每个视图都有一个控制器。也许我误解了什么,但当我这么做的时候,我想通过添加公文包视图和控制器,而不是去/home/Portfolio,它只会把我带到/Portfolio,但事实并非如此。现在,当我点击公文包链接时,它会将我带到/portfolio/portfolio 我是否误解了ASP.NET中路由的工作方式,或者我只是忘记了什么?将操作和视图重命名为索引。将操作和
我是否误解了ASP.NET中路由的工作方式,或者我只是忘记了什么?将操作和视图重命名为索引。将操作和视图重命名为索引。您需要转到
公文包/公文包
,因为这就是您命名设置的方式。第一个是控制器的名称(名称中没有控制器)PortfolioController
。第二个是ActionResult
,Portfolio
的名称,它返回Portfolio.cshtml
。如果您只想查看/Portfolio
,您可以随时使用PortfolioController
使用
public ActionResult Index(){ return View(); }
然后将
Portfolio.cshtml
重命名为Index.cshtml
,您就可以开始了。它会将您带到Portfolio/Portfolio
,因为这就是您命名设置的方式。第一个是控制器的名称(名称中没有控制器)PortfolioController
。第二个是ActionResult
,Portfolio
的名称,它返回Portfolio.cshtml
。如果您只想查看/Portfolio
,您可以随时使用PortfolioController
使用
public ActionResult Index(){ return View(); }
然后将
Portfolio.cshtml
重命名为Index.cshtml
,你就可以开始了。当你有localhost/Portfolio时,你将调用默认的Portfolio操作,默认情况下,该操作将被索引,你将看到该视图,因为你没有该视图,你可以创建一个
您可以通过/portfolio/portfolio在您的portfolio controller中访问您的portfolio操作
因为它遵循app_start文件夹中routConfig.cs中的默认路由
如果您只想通过/portfolio获得与/portfolio相同的/portfolio/portfolio结果,您可以在routeconfig中添加类似的路由
routes.MapRoute(
name: "portfolio",
url: "portfolio/{action}",
defaults: new { Controller = "portfolio", Action = "portfolio" }
);
注意在默认路由之前写入,因为当它匹配第一个路由时,它不会检查其他路由
抱歉,我的英语不好当您有localhost/portfolio时,您将调用默认的portfolio操作,默认情况下,该操作将被索引,您将看到该视图,因为您没有该视图,您可以创建一个 您可以通过/portfolio/portfolio在您的portfolio controller中访问您的portfolio操作 因为它遵循app_start文件夹中routConfig.cs中的默认路由 如果您只想通过/portfolio获得与/portfolio相同的/portfolio/portfolio结果,您可以在routeconfig中添加类似的路由
routes.MapRoute(
name: "portfolio",
url: "portfolio/{action}",
defaults: new { Controller = "portfolio", Action = "portfolio" }
);
注意在默认路由之前写入,因为当它匹配第一个路由时,它不会检查其他路由
对不起,我的英语不好好的,现在可以了,我只需要想一想如何更改_Layout.cshtml中的ActionLink以指向新链接,因为它指向旧的/Portfolio/PortfolioOk,现在可以了,我只是想知道如何更改ulayout.cshtml中的ActionLink以指向新链接,因为它指向旧的/Portfolio/Portfolio