У меня есть некоторые проблемы с маршрутизацией в ядре 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] он работает.
Но это не решение для меня.