class="brush:csharp;gutter:true;"> 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(); }
写得有点凌乱,改天有时间修改