Hi guys,
I am currently creating a mobile version of my company's site and using it as a time to learn asp.net mvc.
The URLs which I'm meant to be creating are as follows
Jobs/in/location 
Jobs/for/jobTitle  
Jobs/in/location/for/jobtitle  
jobs/for/jobtitle/in/location  
Now the more types we add the more I'll need to add and different routes I'll need, so not really maintaining.
So currently in my Global.asax.cs is
 
//Jobs
            routes.MapRoute(
                "DefaultJobs",                                              // Route name
                "Jobs/{pagenumber}",                           // URL with parameters
                new { controller = "Jobs", action = "Default", pagenumber = "1" }  // Parameter defaults
            );
            //Jobs by Location
            routes.MapRoute(
                "JobsByLocation",                                              // Route name
                "Jobs/in/{location}/{pagenumber}",                           // URL with parameters
                new { controller = "Jobs", action = "Default", location = "", pagenumber = "1" }  // Parameter defaults
            );
            //Jobs by Title
            routes.MapRoute(
                "JobsByTitle",                                              // Route name
                "Jobs/for/{title}/{pagenumber}",                           // URL with parameters
                new { controller = "Jobs", action = "Default", title= "", pagenumber = "1" }  // Parameter defaults
            );
            //Jobs by Title and Location
            routes.MapRoute(
                "JobsByTitleAndLocation",                                              // Route name
                "Jobs/for/{title}/in/{location}/{pagenumber}",                           // URL with parameters
                new { controller = "Jobs", action = "Default", location = "", title = "", pagenumber = "1" }  // Parameter defaults
            );
So I'm not sure if this is right, since in my JobsController I did have "in" as a Controller, but I could only get one parameter. So I went with a default one which caught everything.
public ActionResult Default(string location, string title, string pagenumber)
        {
            return Content("Location " + location + " Title " + title + " Page " + pagenumber);
        }
Now is this the right way of doing it? Or have I missed something?
For calling this method, I have this
[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult SearchContinent(string Continents)
        {
            try
            {
                // TODO: Add update logic here
                //return RedirectToAction("Default","Jobs",
                    //new {
                       // location = Continents
                        // }); 
                return RedirectToRoute(new { controller = "Jobs", action = "Default", location = Continents, pagenumber = "1" });
                //return Redirect("Jobs/in/" + Continents);
            }
            catch
            {
                return View();
            }
        }
Now this doesn't produce the correct url since it is missing the "in" and passes "location" as a param, which works but is incorrect.