After creating controllers, for instance, like in example which I described here, and you want to "extend" index controller with additional parameter, then you have to introduce new router. In my case, in RouteConfig.cs (\MasterDetailDataTables\MasterDetailDataTables\App_Start\RouteConfig.cs) I did something like this:

 

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

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

As you can see, I commented default one, and added new one, where instead id I wrote category. Also in this line:

defaults: new { controller = "MasterDetail", action = "Index", category = UrlParameter.Optional }

Category is bold because I already forgot to change it in there part as well :)

From here.