Skip to content

sgwill/RouteAttribute

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RouteAttribute

NOTE: this readme is a work in progress. For real.

The RouteAttribute is a non convention based routing mechanism for asp.net mvc. The goals are to increase route meta data terseness and locality. You can read about why Kevin Montrose likes this style of routing here.

##Core features:##

  • Places the url next to the action code executed when that route is matched
  • Supports custom route weighting

Custom route weighting allows you

  • Common routing funniness is gone

The most obvious example of this occurs when using the default route that gets added when you roll up a new project.

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

For CRUD type applications, you generally have an index route that lists all or some subset of the items, then you click on one or something and it brings you to a details page. With the default convention based route, all of the following routes point to the list page:

/
/Users
/Users/Index
/Users/Index/123

When an id is specified to go to the index page, it still shows the list, which feels a little off. With convention based routing, you are creating a ton of valid routes such as the example listed above in your application which may not act like your users expect. You also run into a canonicalization problems with conventions because all of the above routes expose the exact same data on multiple pages of your site.

##Key limitations:##

  • Currently does not support XSRF prevention

    The

  • ASP.NET MVC does not handle a large number of routes very well

About

A route attribute for asp.net mvc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published