4

У меня есть некоторые проблемы с маршрутизацией в ядре asp.net (web api).ASP.NET CORE, веб-API: маршрут не соответствует указанным значениям

У меня есть этот контроллер (упрощенный):

[ApiVersion("1.0")] 
[Route("api/v{version:apiVersion}/[Controller]")] 
public class DocumentController : Controller 
{ 

[HttpGet("{guid}", Name = "GetDocument")] 
public IActionResult GetByGuid(string guid) 
{ 
    var doc = DocumentDataProvider.Find(guid); 
    if (doc == null) 
     return NotFound(); 

    return new ObjectResult(doc) {StatusCode = 200}; 
} 


[HttpPost] 
public IActionResult Create([FromBody] Document doc) 
{ 
    //... Creating Doc 

    //Does not work 
    //var val = CreatedAtRoute("GetDocument", new {guid = doc.Guid.ToString("N")}, document); 
    //or this: CreatedAtRoute("GetDocument", new { controller = "Document", guid = doc.Guid.ToString("N")}, document); 

    var val = CreatedAtRoute("GetDocument", new { version = "1", controller = "Document", guid = doc.Guid.ToString("N")}, document); 

    return val; 
} 
} 

Если я вызываю Создать документ создан и был создан объект маршрутизации, но я получаю ошибку «Отсутствует маршрут соответствует поставляемые значения» и получить 500.

Я могу позвонить GetByGuid напрямую, без проблем.

Я не нашел никакой отладочной справки для ядра asp.net (как и любой существующий отладчик маршрутизации).

Буду признателен за любую помощь!

EDIT Похоже, что это будет ошибка из пакета управления версиями Microsoft, .. если я определить исправление маршрута/API/v1/[Controller] он работает.

Но это не решение для меня.

ответ

0

Я просто использовал возвращение CreatedAtAction("ActionMethodName", dto); вместо пока они не исправить эту ошибку.