2017-05-29 55 views
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); 

    } 
} 

郵差 enter image description here

+2

它看起來像你忘了添加antiforgery cookie請求。或者它是反序列化錯誤。或者是其他東西。您可以調試您的程序並檢查其日誌以收集更多信息。 [如何創建一個最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve) –

回答

0

此問題已得到修復。我不得不刪除防僞標記

相關問題