2015-02-26 3 views
1

Я пытаюсь создать URL внутри одного из моих веб действий API:Mvc веб-апи проблема генерации маршрута

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(); 

однако genrated URL отсутствует в "api/" prepender и для этого не работает, как URL-адрес не может быть разрешенным.

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

следующий мой веб-апи конфигурации:

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 } 
      ); 
     } 

ответ

0

Вы имеете в виду «По умолчанию» маршрут вместо маршрута «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/приставкой.

Смежные вопросы