Why are you trying to use the conventional route RouteDefaultApi
when you want to generate links to an attributed route of a controller/action ?
Following is an example usage of how you need to use Url.Link with attribute routing:
[Route("api/values/{id}", Name = "GetValueById")]
public string GetSingle(int id)
Url.Link("GetValueById", new { id = 10 } );