title: "Method not found: 'System.Net.Http.HttpRequestMessage System.Web.Http.ApiController.get_Request()'."
body: <p>Here is my controller:</p>
  <pre class="lang-cs prettyprint-override"><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Net;
  using System.Net.Http;
  using System.Web.Http;
  
  using Milos_MovieStore.DAL;
  using Milos_MovieStore.Models;
  using Milos_MovieStore.DTO;
  using System.Data.Entity;
  
  namespace Milos_MovieStore.Controllers.Api
  {
      public class CustomersController : ApiController
      {
  
          private DBContext_MovieStore _dbcontext;
  
          public CustomersController()
          {
              _dbcontext = new DBContext_MovieStore();
          }
          protected override void Dispose(bool disposing)
          {
              _dbcontext.Dispose();
          }
  
  
  
          // GET /api/customers
          [HttpGet]
          public IHttpActionResult GetCustomers()
          {
              List&lt;Customer&gt; customers = _dbcontext.Customers.Include(c =&gt; c.MembershipType).ToList();
  
              return Ok(CustomersToDTOList(customers));
          }
  
          // GET /api/customers/1
          [HttpGet]
          public IHttpActionResult GetCustomer(int id)
          {
              Customer customer = _dbcontext.Customers.Include(c =&gt; c.MembershipType).SingleOrDefault(c =&gt; c.Id == id);
              if (customer == null)
                  return NotFound();
  
              return Ok(CustomerToDTO(customer));
          }
  
          //POST /api/customers
          [HttpPost]
          public IHttpActionResult CreateCustomer(CustomerDTO customerDTO)
          {
              if (!ModelState.IsValid)
                  return BadRequest();
  
              _dbcontext.Customers.Add(DTOToCustomer(customerDTO));
              _dbcontext.SaveChanges();
              
              return Created(new Uri(Request.RequestUri + &quot;/&quot; + customerDTO.Id), customerDTO);
          }
  
          // PUT /api/customer/1
          [HttpPut]
          public IHttpActionResult UpdateCustomer(CustomerDTO customerDTO)
          {
              if (!ModelState.IsValid)
                  return BadRequest();
  
              Customer customerInDB = _dbcontext.Customers.SingleOrDefault(c =&gt; c.Id == customerDTO.Id);
              if (customerInDB == null)
                  return NotFound();
  
              MapDTOToCustomer(customerDTO, customerInDB);
              _dbcontext.SaveChanges();
              
              return Ok(customerDTO);
          }
  
          // DELETE /api/customer/1
          [HttpDelete]
          public IHttpActionResult DeleteCustomer(int id)
          {
              if (!ModelState.IsValid)
                  return BadRequest();
  
              Customer customerInDB = _dbcontext.Customers.SingleOrDefault(c =&gt; c.Id == id);
              if (customerInDB == null)
                  return NotFound();
  
              _dbcontext.Customers.Remove(customerInDB);
              _dbcontext.SaveChanges();
  
              return Ok(id);
          }
  
  
  
  
          private CustomerDTO CustomerToDTO(Customer customer)
          {
              CustomerDTO customerDTO = new CustomerDTO();
  
              customerDTO.Id = customer.Id;
              customerDTO.Name = customer.Name;
              customerDTO.DOB = customer.DOB;
              customerDTO.MembershipTypeId = customer.MembershipTypeId;
              customerDTO.IsSubscribedToNewsletter = customer.IsSubscribedToNewsletter;
  
              return customerDTO;
          }
  
  
          private Customer DTOToCustomer(CustomerDTO customerDTO)
          {
              Customer customer = new Customer();
              
              customer.Id = customerDTO.Id;
              customer.Name = customerDTO.Name;
              customer.DOB = customerDTO.DOB;
              customer.MembershipTypeId = customerDTO.MembershipTypeId;
              customer.IsSubscribedToNewsletter = customerDTO.IsSubscribedToNewsletter;
  
              return customer;
          }
  
  
          private void MapDTOToCustomer(CustomerDTO customerDTO, Customer customer)
          {
              customer.Id = customerDTO.Id;
              customer.Name = customerDTO.Name;
              customer.DOB = customerDTO.DOB;
              customer.MembershipTypeId = customerDTO.MembershipTypeId;
              customer.IsSubscribedToNewsletter = customerDTO.IsSubscribedToNewsletter;
          }
  
          private IEnumerable&lt;CustomerDTO&gt; CustomersToDTOList(IEnumerable&lt;Customer&gt; customers)
          {
              List&lt;CustomerDTO&gt; customersDTO = new List&lt;CustomerDTO&gt;();
  
              foreach (Customer c in customers)
              {
                  customersDTO.Add(CustomerToDTO(c));
              }
  
              return customersDTO;
          }
      }
  }
  </code></pre>
  <p>My DTO:</p>
  <pre class="lang-cs prettyprint-override"><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  
  using System.ComponentModel.DataAnnotations;
  
  namespace Milos_MovieStore.DTO
  {
      public class CustomerDTO
      {
          public int Id { get; set; }
          [Required]
          [StringLength(255)]
          public string Name { get; set; }
          public DateTime? DOB { get; set; }
          public byte MembershipTypeId { get; set; }
          public bool IsSubscribedToNewsletter { get; set; }
      }
  }
  </code></pre>
  <p>My POST request:</p>
  <p><a href="https://i.stack.imgur.com/9p8mj.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9p8mj.png" alt="Postman POST request" /></a></p>
  <p>As you can see in the screenshot, I'm sending DTO in JSON to POST method in API controller. I just can't find a solution. DELETE and GET requests are working with no problem. It is a training project so don't worry about those weird temporary mapping methods I have put in controller.</p>