Оригинальный вопрос:
У меня есть некоторые проблемы с маршрутизацией в ядре asp.net (веб 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);
// neither this
var val = CreatedAtRoute("GetDocument", new { version = "1", controller = "Document", guid = doc.Guid.ToString("N")}, document);
return val;
}
}
Я могу напрямую вызвать GetByGuid без каких-либо проблем.
Я не смог найти никакой помощи по отладке для ядра asp.net (как и для любой существующей маршрутизации) отладчик).
Буду признателен за любую помощь!
РЕДАКТИРОВАТЬ
Похоже, это ошибка в пакете управления версиями Microsoft. Если я определяю маршрут исправления /api/v1/[Controller], он работает.
Но это не решение для я.
Подробнее здесь: https://stackoverflow.com/questions/394 ... ied-values
Мобильная версия