'.Net Route Action Parameter coming back null despite being in url

UPDATE: It works fine is I add another parameter. I have no idea why.

Not sure what I am doing wrong, this route looks the same as the other routes, I've looked at all the other stackoverflow posts on the subject and everything looks up to snuff. Maybe someone can see something I can't?

Error: action parameter can't be null

The url: http://localhost:1319/EntryHistory/Entry/B2AAAA4A-B174-4C28-924F-A3B2027DD745

EntryHistoryController.cs:

  public class EntryHistoryController : Controller
    {
        
        public ActionResult Entry(string entryId)
        {
            Guid parsedEntryId = Guid.Parse(entryId);
            var history = new EntryHistoryService().BuildEntryHistoryViewModel(parsedEntryId);
            return View(history);
        }
    }

RouteConfig.cs

public static void RegisterRoutes(RouteCollection routes)
        {
           ...
            EntryHistoryRoutes(routes);
          ...
}
 private static void EntryHistoryRoutes(RouteCollection routes)
        {

            routes.MapRoute(
                "revisionhistory",
                "entryhistory/entry/{entryId}",
                new
                {
                    controller = "entryhistory",
                    action = "entry",
                    entryId = UrlParameter.Optional
                }
            );



         }

        




Solution 1:[1]

add attribute routing

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

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

and action

[Route("~/entryhistory/entry/{entryId}")]
public ActionResult Entry(string entryId)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Serge