Custom URL Routing in Asp.Net MVC 4

asp.net-mvc, asp.net-mvc-4, c#, custom-url, url-routing

Solution

To enable attribute routing, call MapMvcAttributeRoutes during configuration. Following are the code snipped.

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

In MVC5, we can combine attribute routing with convention-based routing. Following are the code snipped.

        public static void RegisterRoutes(RouteCollection routes)
         {
          routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
          routes.MapMvcAttributeRoutes();
          routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );
  }

It is very easy to make a URI parameter optional by adding a question mark to the route parameter. We can also specify a default value by using the form parameter=value. here is the full article.

Problem

How can i do like this url (http://www.domain.com/friendly-content-title) in Asp.Net MVC 4. Note: This parameter is always dynamic. URL may be different: "friendly-content-title" I try to Custom Attribute but I dont catch this (friendly-content-title) parameters in ActionResult. Views: - Home/Index - Home/Video ActionResult: ``` // GET: /Home/ public ActionResult Index() { return View(Latest); } // GET: /Home/Video public ActionResult Video(string permalink) { var title = permalink; return View(); } ``` RouteConfig: ``` public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Home Page", url: "{controller}/{action}", defaults: new { controller = "Home", action = "Index" } ); routes.MapRoute( name: "Video Page", url: "{Home}/{permalink}", defaults: new { controller = "Home", action = "Video", permalink = "" } ); } ``` What should I do for catch to url (/friendly-content-title)?

Original source