首页 文章

发布 web 方法不会触发 asp.net 核心 webapi

提问于
浏览
2

我正在 asp.net 核心 web api 项目中使用 EF7 和 storedprocudures 实现 CRUD 操作。我已经完成了 get 方法的实现,并使用了 insert 方法。我正在使用 Postman 测试 Web 方法。我已经为 Create 编写了实现但是无法通过邮递员发布信息而不是在控制器中使用 Create web 方法。有人能让我知道问题可能是什么。除了方法签名不同之外,get 和 post 的路由是相同的。

****控制器

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);

    }
}

邮差
在此输入图像描述

1 回答

  • 0

    这个问题已被解决。我不得不删除 anti-forgery 令牌

相关问题