views:

62

answers:

2

My url http://server/region/section/item

Now if someone goes to http://server/us/ I want to display a page to choose a section if someone goes to http://server/us/beer/ I want to display a list of all beers.

My question is should I just have 1 route with defaults and then return different views depending on how much the URL is filled in or should I create multiple routes going to the same controller different actions? or even different controllers, I just want to know what the best practice is.

A: 

In your particular case, "beer" can probably be a filter to a controller action, rather than another controller action, in which case you need only one route entry.

It doesn't seem wise to create a strategy that will require you to add new routes, controller methods and/or views every time you add a product category. Unless, of course, you want to highly customize each category's look and behavior.

Robert Harvey
+2  A: 

The typical route looks like this:

http://www.domain.com/controller/action/id [domain/controller/action/id]

In your case, it's short one part: http://server/us/beer [domain/controller/action?/?]

As Robert Harvey said, you wouldn't want to have an action for every product. So how about something like: http://server/us/product/beer [domain/controller/action/id]

  • domain = server
  • controller = us (tho, this doesn't seem like it would be a good name for the controller)
  • action = product
  • id = beer

Then you'd develop a product view that would show the beer data to your visitors.

This isn't architect-ed very well, but without knowing your situation it would be difficult for anyone to answer this. I hope this helps though.

Chad