ASP.NET CORE, веб-API: ни один маршрут не соответствует предоставленным значениямC#

Место общения программистов C#
Ответить
Anonymous
 ASP.NET CORE, веб-API: ни один маршрут не соответствует предоставленным значениям

Сообщение Anonymous »

ОБРАТИТЕ ВНИМАНИЕ: этот вопрос был задан в 2016 году. Первоначальным ответом на эту проблему было обновление пакета Microsoft API versiong. В настоящее время проблема повторяется, но по другим причинам.

Оригинальный вопрос:



У меня есть некоторые проблемы с маршрутизацией в ядре 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;
}
}
Если я вызываю Create, документ создается и объект маршрутизации создается, но я получаю сообщение об ошибке «Ни один маршрут не соответствует предоставленным значениям» и получаю статус 500.

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

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

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

РЕДАКТИРОВАТЬ
Похоже, это ошибка в пакете управления версиями Microsoft. Если я определяю маршрут исправления /api/v1/[Controller], он работает.

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

Подробнее здесь: https://stackoverflow.com/questions/394 ... ied-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»