asp.net mvc路由

在MVC中,路由是将浏览器请求映射到控制器操作并返回响应的过程。每个MVC应用程序都有默认HomeController的默认路由。我们可以为新创建的控制器设置自定义路由。
RouteConfig.cs文件用于设置应用程序的路由。最初,它包含以下代码。
// RouteConfig.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } }

根据此安装文件,将Home控制器的Index操作视为默认操作。第一次,当应用程序运行时,它将产生以下输出。
asp.net mvc路由

文章图片
如果我们查看地址栏,它仅包含localhost:52174。没有控制器,没有指定操作,因为MVC路由器从RouteConfig.cs映射了控制器。
如果我们在地址栏中明确输入控制器名称和操作名称,它将重定向到同一操作。 localhost:52174 / Home / Index将对浏览器产生相同的输出。
asp.net mvc路由

文章图片
现在,让我们创建一个新的控制器并将其配置为路由文件。右键单击Controller文件夹,然后选择添加,然后选择控制器。它将弹出一个窗口。选择一个空的控制器,就像我们在屏幕截图中所做的那样。
asp.net mvc路由

文章图片
该控制器具有一些源代码,请使用以下代码覆盖它。
// StudentsController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content("This is default student page"); } } }

要在路由文件中配置此控制器,我们对RouteConfig.cs文件进行了一些更改。代码如下。
// RouteConfig.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Students", url: "{controller}/{action}/{id}", defaults: new { controller = "Students", action = "Index", id = UrlParameter.Optional } ); } } }

此应用程序为localhost:52174和localhost:52174 / Students / Index产生相同的输出
因为MVC框架的route模块将浏览器URL映射到项目的RouteConfig文件。
输出:

【asp.net mvc路由】即使我们已明确输入控制器和动作名称,也与上面相同。
asp.net mvc路由

文章图片

    推荐阅读