Route

  1. General
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}");

匹配:

http://mydomain.com/Admin/Index
http://mydomain.com/Home/Index    (默认)
  1. Static URL Segments
routes.MapRoute(name: "", template: "Public/{controller=Home}/{action=Index}");

匹配:

http://mydomain.com/Public/Admin/Index
http://mydomain.com/Public/Home/Index    (默认)
  1. Mixed
routes.MapRoute("", "X{controller}/{action}");

匹配:

http://mydomain.com/XAdmin/Index
http://mydomain.com/XHome/Index

应用:

routes.MapRoute("", "Shop/OldAction", new { controller = "Home", action = "Index" });

会匹配到

http://mydomain.com/Home/Index
  1. 自定义Segment变量
routes.MapRoute("", "{controller=Home}/{action=Index}/{id=DefaultId}");

Note: controller,action和area为保留字

  1. 可选Segment
routes.MapRoute("", "{controller=Home}/{action=Index}/{id?}");
  1. catchall
routes.MapRoute("", "{controller=Home}/{action=Index}/{id?}/{*catchall}");

匹配:

http://mydomain.com/Home/List/123/123/12/31/2312/3

其中catchall为"123/12/31/2312/3"

  1. 约束Routes
routes.MapRoute("", "{controller=Home}/{action=Index}/{id:int?}");

匹配:

http://mydomain.com/CustomVariable/Hello/1
  1. Attribute Routing
  public class CustomerController : Controller
    {
        [Route("myroute")]
        public ViewResult Index() => View("Result", new Result { Controller = nameof(CustomerController), Action = nameof(Index) });
        public ViewResult List() => View("Result", new Result { Controller = nameof(CustomerController), Action = nameof(Index) });
    }

匹配:

http://mydomain.com/myroute

且无法通过如下Url访问:

http://mydomain.com/Customer/Index

可以添加[controller]:

    public class CustomerController : Controller
    {
        [Route("[controller]/MyAction")]
        public ViewResult Index() => View("Result", new Result { Controller = nameof(CustomerController), Action = nameof(Index) });
        public ViewResult List() => View("Result", new Result { Controller = nameof(CustomerController), Action = nameof(Index) });
    }

匹配:

http://mydomain.com/Customer/MyAction
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容