Mvc web api 路由生成问题

Mvc web api route generation issue

我正在尝试从我的一个网络 api 操作中生成一个 url:

var resultsModel =
                results.Select(
                    r =>
                        new ResultModel(criteria, 
                            r,
                            Url.Link("Default", new { Controller = "CV", Action = "Get", candidateid = r.CandidateId, filename = r.Name })
                            , false))
                    .ToList();

然而,生成的 url 缺少 "api/" 前缀,因此无法正常工作,因为 url 无法解析。

https://temp-search.recruiter.workstation.local/recruiter/temp-search/cv/get?candidateid=14350164&filename=Douggersby%20Mondays&id=143501

以下是我的网站api配置:

public static void Register(HttpConfiguration config)
        {
            config.MessageHandlers.Add(new AuthorizationHandler());
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }

您指的是 'Default' 路线而不是 'DefaultApi' 路线。

而不是:

Url.Link("Default", new { Controller = "CV", Action = "Get", candidateid = r.CandidateId, filename = r.Name })
                        , false))

使用:

Url.Link("DefaultApi", new { Controller = "CV", Action = "Get", candidateid = r.CandidateId, filename = r.Name })
                        , false))

并且 'DefaultApi' 路由模板将用于生成 url,包括 api/ 前缀。