微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 2个参数中的一个返回null

我正在使用MVC.当我运行调试器并使用Postman进行测试并将鼠标悬停在参数上时,它显示参数传递给MovieIds的空值,但CustomerId正在按预期工作.

Api Controller:neWrental在调试时将MovieIds显示为null

public class NeWrentalsController : ApiController
{
    private ApplicationDbContext _context;

    public NeWrentalsController()
    {
        _context = new ApplicationDbContext();
    }

    [HttpPost]
    public IHttpActionResult CreateNeWrentals(NeWrentalDto neWrental)
    {
        var customer = _context.Customers.Single(c => c.Id == neWrental.CustomerId);

        var movies = _context.Movies.Where(m => neWrental.MovieIds.Contains(m.Id)).ToList();

        //var movies = _context.Movies.Where(m => m.Id ==1);

        foreach (var movie in movies)
        {
            if (movie.NumberAvailable == 0)
                return BadRequest("Movie is not available.");

            movie.NumberAvailable--;

            var rental = new Rental
            {
                Customer = customer,Movie = movie,DateRented = DateTime.Now
            };

            _context.Rentals.Add(rental);
        }

        _context.SaveChanges();

        return Ok();
    }

}

DTO:

public class NeWrentalDto
{
    public int CustomerId { get; set; }
    public List<int> MovieIds { get; set; }
}

邮差要求:

{"customerId": 2,"movieId": 1,"dateRented": "2017-09-28T00:00:00"
}

我认为这与List< int>有关.因为我可以硬编码Id,它会将它发送到数据库.

解决方法

正如你猜测的那样,问题是MovieIds是一个List< int>所以你的请求应该是这样的(使用方括号[]):

MovieIds: [1],

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐