个性化阅读
专注于IT技术分析

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操作视为默认操作。第一次,当应用程序运行时,它将产生以下输出。

如果我们查看地址栏,它仅包含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文件。

输出:

即使我们已明确输入控制器和动作名称,也与上面相同。

赞(0)
未经允许不得转载:srcmini » asp.net mvc路由

评论 抢沙发

评论前必须登录!