-1
Visual Studio 2017에서 작동하지만 Visual 코드 1.18에서 동일한 코드가 작동하지 않는 샘플 .NET Core 2.0 WebApi 코드가 있습니다. POST 명령에 400 Bad Request가 표시됩니다. GET 명령은 두 가지 모두에서 작동합니다. Visual Studio 2017에서 일부 파일이나 설정이 누락되었습니다. Visual Studio 코드에서 내가 잘못하고있는 것을 아는 사람이 있습니까?Visual Studio 코드 400 나쁜 요청
다음은 컨트롤러에 대한 코드의 피터
당신에게 감사 : 자신의 시간을 낭비 모두에게
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using TodoApi.Models;
using System.Linq;
namespace TodoApi.Controllers
{
[Route("api/[controller]")]
public class TodoController : Controller
{
private readonly TodoContext _context;
public TodoController(TodoContext context)
{
_context = context;
if (_context.TodoItems.Count() != 0) return;
_context.TodoItems.Add(new TodoItem { Name = "Item1" });
_context.SaveChanges();
}
[HttpGet]
public IEnumerable<TodoItem> GetAll()
{
return _context.TodoItems.ToList();
}
[HttpGet("{id}", Name = "GetTodo")]
public IActionResult GetById(long id)
{
TodoItem item = _context.TodoItems.FirstOrDefault(t => t.Id == id);
if (item == null)
{
return NotFound();
}
return new ObjectResult(item);
}
[HttpPost]
public IActionResult Create([FromBody] TodoItem item)
{
if (item == null)
{
return BadRequest();
}
_context.TodoItems.Add(item);
_context.SaveChanges();
return CreatedAtRoute("GetTodo", new { id = item.Id }, item);
}
[HttpPut("{id}")]
public IActionResult Update(long id, [FromBody] TodoItem item)
{
if (item == null || item.Id != id)
{
return BadRequest();
}
TodoItem todo = _context.TodoItems.FirstOrDefault(t => t.Id == id);
if (todo == null)
{
return NotFound();
}
todo.IsComplete = item.IsComplete;
todo.Name = item.Name;
_context.TodoItems.Update(todo);
_context.SaveChanges();
return new NoContentResult();
}
[HttpDelete("{id}")]
public IActionResult Delete(long id)
{
TodoItem todo = _context.TodoItems.FirstOrDefault(t => t.Id == id);
if (todo == null)
{
return NotFound();
}
_context.TodoItems.Remove(todo);
_context.SaveChanges();
return new NoContentResult();
}
}
}
POST 메서드 내에 중단 점을 넣고 디버깅 할 때 어떤 일이 발생합니까? – mjwills
Visual Studio 코드가 응용 프로그램을 어떻게 실행합니까? IIS, IIS Express 또는 HttpSys? 또한 IIS 또는 HttpSys에서 실행하려면 코드 내에서 실행되는 경우 관리자 권한으로 승격해야합니다. – Greg
POST 명령을 어떻게 보냅니 까? 우편 배달부 에서요? 크롬? 다른 것? – mjwills