the url which you have given in your question is having 4 parameters
Product/SubCategories/94/Audi-50 (86)-1.1/Air filter/43420
94-?
audi..- selected
air filter- category
code - 43420
you have to make sure you pass three values in parameter.
however
There are few more things which you can try
try 1: add the other optional parameters entry as well
routes.MapRoute(
name: "Detail",
url: "{controller}/{action}/{selected}/{category}/{code}",
defaults: new { controller = "Product", action = "ProductDetails", selected=UrlParameter.Optional,category = UrlParameter.Optional, code=UrlParameter.Optional }
);
try 2: assign parameter in order
<a href="@Url.Action("ProductDetails", "Product" , new { selected=@selectedCar, category=@c.Name, code=@c.Code})" id="link">
Details
</a>