asp.net 코어 (웹 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;
}
}
, 문서 작성 및 라우팅 오브젝트가 작성했지만, 난이 오류가 "어떤 경로가 지정된 값과 일치하지 않습니다"과를 얻을 수를 500 상태.
아무런 문제없이 GetByGuid를 직접 호출 할 수 있습니다.
기존 라우팅 디버거와 마찬가지로 asp.net 코어에 대한 디버깅 도움말을 찾을 수 없습니다.
나는 어떤 도움을 주셔서 감사합니다! 마이크로 소프트의 버젼 패키지에서 버그 것처럼이 수정 경로/API/V1/[컨트롤러]가 작동하고 정의하면
EDIT 은 .. 보인다.
하지만 그건 나를위한 해결책이 아닙니다.