asp.netコア(web api)のルーティングに問題があります。ASP.NET CORE、Web 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;
}
}
、文書が作成され、ルーティングオブジェクトが作成されましたが、私はエラーを取得「Noルートは、供給された値と一致していない」とgetを500ステータス。
私は問題なく直接GetByGuidを呼び出すことができます。
既存のルーティングデバッガと同様に、asp.netコアのデバッグヘルプが見つかりませんでした。
私は助けていただきありがとうございます!それはMicrosoftのバージョン管理パッケージからバグだろうよう
EDIT が見える私は固定ルート/ API/V1/[コントローラー]を定義した場合...それが働いています。
しかし、それは私の解決策ではありません。