MVC5笔记

创建一个MVC网站后,我们可以在/app_strat/routeConfig.cs中来查看集中控制路的方法,RegisterRoutes方法(注册路由),我们改一下,删除默认的RegisterRoutes中的所有内容,然后来
自定义:
  public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.MapMvcAttributeRoutes(); //自定义路由
        }
    }
然后在Controller注册一个规则
 [Route("Test")]
        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }
然后启动项目,输入Test就会出现About的视图
 [Route("")]
        public ActionResult Index()
        {
            return View();
        }
默认页可以这样写,注册的规则也可以重叠,既一个控制器(Controller)可以注册多条路由规则
  [Route("")]
        [Route("home")]
        [Route("home/index")]
        public ActionResult Index()
        {
            return View();
        }
路由值可以这样写
 [Route("Test/{id}")]
        public ActionResult About(int id)
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }
控制器路由:
前面看到了如何把路由的特性添加到操作方法,很多时侯,控制器中的方法遵循的模式基本上一样,我们可以用一个通用方法,来节省一下代码量和时间。
我们这样改一下HomeController
 [Route("home/{action}")]
    public class HomeController : Controller
    {
        //[Route("")]
        //[Route("home")]
        //[Route("home/index")]
        public ActionResult Index()
        {
            return View();
        }
      
        public ActionResult About(int id)
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}

当然这种方法还支持为个别控制提供单独的路由规则
  [Route("")]
        [Route("home")]
        [Route("home/index")]
        public ActionResult Index()
        {
            return View();
        }

写得有点凌乱,改天有时间修改

原文地址:https://www.cnblogs.com/c546170667/p/7051302.html