3
ASP.NET Core 2.0.0 웹 API를 사용하여 데이터베이스 삽입 작업을 수행 할 컨트롤러를 작성하려고합니다. 정보는 데이터베이스에 잘 삽입 될 수 있지만 CreatedAtRoute를 반환하면 'InvalidOperationException : 제공된 값과 일치하는 경로가 없습니다'라는 오류가 발생합니다. 지금까지 온라인에서 발견 한 모든 내용이 초기 시험판 버전의 ASP.NET 코어가 포함 된 버그였으며 이후 수정되었지만 실제로 어떻게해야할지 잘 모르겠다 고합니다. 다음은 내 컨트롤러 코드입니다.ASP.NET Core CreatedAtRoute 제공된 값과 일치하는 경로가 없습니다.
[Produces("application/json")]
[Route("api/page")]
public class PageController : Controller
{
private IPageDataAccess _pageData; // data access layer
public PageController(IPageDataAccess pageData)
{
_pageData = pageData;
}
[HttpGet("{id}", Name = "GetPage")]
public async Task<IActionResult> Get(int id)
{
var result = await _pageData.GetPage(id); // data access call
if (result == null)
{
return NotFound();
}
return Ok(result);
}
[HttpPost]
public async Task<IActionResult> Create([FromBody] Page page)
{
if (page == null)
{
return BadRequest();
}
await _pageData.CreatePage(page); // data access call
// Return HTTP 201 response and add a Location header to response
// TODO - fix this, currently throws exception 'InvalidOperationException: No route matches the supplied values.'
return CreatedAtRoute("GetPage", new { PageId = page.PageId }, page);
}
누구든지이 문제를 해결할 수 있습니까?