2
我正在使用EF7和storedprocudures在asp.net核心web api项目中执行CRUD操作。我完成了get方法的实现,并使用insert方法。我使用Postman来测试Web方法。我已经为Create创建了实现,但无法通过邮递员发布信息,因此未在控制器中创建Create Web方法。有人能让我知道问题是什么。除了方法签名不同之外,get和post的路由是相同的。发布web方法没有射击+ asp.net核心webapi
控制器
public class MoviesController : Controller
{
private readonly IMoviesRepository _moviesRepository;
public MoviesController(IMoviesRepository moviesRepository)
{
_moviesRepository = moviesRepository;
}
[HttpGet]
[Route("api/Movies")]
public async Task<IActionResult> GetMovies()
{
var movies = await _moviesRepository.GetMovies();
var results = Mapper.Map<IEnumerable<MoviesDto>>(movies);
return Ok(results);
}
[HttpGet]
[Route("api/Movies/{ID}")]
public async Task<IActionResult> GetMovie(int ID)
{
var movie = await _moviesRepository.GetMovie(ID);
var results = Mapper.Map<IEnumerable<MoviesDto>>(movie);
return Ok(results);
}
[HttpPost]
[ValidateAntiForgeryToken]
[Route("api/Movies")]
public IActionResult CreateMovie([FromBody] MoviesDto movies)
{
if (movies == null)
{
return BadRequest();
}
// Check if movie exists
var movie = _moviesRepository.GetMovie(movies.MovieId);
if (movie == null)
{
return NotFound();
}
var results = Mapper.Map<Movies>(movies);
if (ModelState.IsValid)
{
_moviesRepository.AddMovie(results);
}
return Ok(results);
}
}
它看起来像你忘了添加antiforgery cookie请求。或者它是反序列化错误。或者是其他东西。您可以调试您的程序并检查其日志以收集更多信息。 [如何创建一个最小,完整和可验证的示例](https://stackoverflow.com/help/mcve) –