在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操作视为默认操作。第一次,当应用程序运行时,它将产生以下输出。
文章图片
如果我们查看地址栏,它仅包含localhost:52174。没有控制器,没有指定操作,因为MVC路由器从RouteConfig.cs映射了控制器。
如果我们在地址栏中明确输入控制器名称和操作名称,它将重定向到同一操作。 localhost:52174 / Home / Index将对浏览器产生相同的输出。
文章图片
现在,让我们创建一个新的控制器并将其配置为路由文件。右键单击Controller文件夹,然后选择添加,然后选择控制器。它将弹出一个窗口。选择一个空的控制器,就像我们在屏幕截图中所做的那样。
文章图片
该控制器具有一些源代码,请使用以下代码覆盖它。
// 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验证
- asp.net mvc boostrap框架
- asp.net mvc身份验证
- asp.net mvc entity框架
- asp.net mvc视图
- asp.net mvc模型绑定
- asp.net mvc模型
- asp.net mvc动作过滤器
- asp.net mvc的动作action