Calling Put method in Web API with asp.net MVC as client
                            
                         
                        
                     
                 
                
                    I have created a Web-api and ASP.NET MVC Client both in Different solutions with following put method in Web API
 public HttpResponseMessage Put(int id, [FromBody]DataModel model)
 in the put method i pass the object and it get updated in the database. Its working i have checked it with fiddler.
  Now in My MVC Application i call it using the following code
  [HttpPost] public JsonResult OrderSearch(DataModel model) 
  { 
  UpdateOrder(model).Wait(); 
  if (putresult != null && putresult != string.Empty)
  { 
  return Json(putresult);
      } 
  else 
  { 
  return Json("Error in getting result");
      } 
  }  
  private async Task UpdateOrder(DataModel model) { 
  string json = JsonConvert.SerializeObject(model); 
  using (var client = new HttpClient())
  { 
  client.BaseAddress = new Uri(url); 
  client.DefaultRequestHeaders.Accept.Clear();  
  client.DefaultRequestHeaders.Accept.Add(new 
  MediaTypeWithQualityHeaderValue("application/json")); 
  HttpResponseMessage response = client.PutAsync("api/values/"+ model.OrderNo,new StringContent(json)).Result; 
  if (response.IsSuccessStatusCode)
    {
      putresult = await response.Content.ReadAsAsync<string>(); 
  } 
  } 
  }
 But the code does not hit my Put method on the service and putresult remains blank. I try to search about PutAsync usage but could not find anything. So i replace this code with 
<script>
 $(document).ready(function () {
 $("#btnSubmit").click(function () {
 
 var modelresult = {
 Id: $("#Id").val(),
 OrderNo: $('#OrderNo').val(),
 TransportName: $('#TransportName').val(),
 GRNumber: $("#GRNumber").val(),
 LRNumber: $('#LRNumber').val(),
 ProductCode: $('#ProductCode').val(),
 QtyOrdered: $("#QtyOrdered").val(),
 
 };
 $.ajax({
 url: 'http://localhost:10471/Api/Values/' + $('#OrderNo').val(),
 //type: 'POST',
 type: 'PUT',
 data: JSON.stringify(modelresult),
 headers: {
 "Content-Type": "application/json"
 // ,"X-HTTP-Method-Override": "PUT"
 },
 success: function (data) {
 alert(data.responseText);
 },
 error: function (data) {
 alert('Problem in updating Purchase Order:' + data.responseText);
 }
 });
 return false;
 });
 });
</script>
and comment out the action method it seem to hit as fiddler suggest but giving this
{"Message":"The requested resource does not support http method 'OPTIONS'."}
In my web api i also set these settings 
i had done these settings as well in my web config
<system.webServer>
 <modules runAllManagedModulesForAllRequests="true"></modules>
</system.webServer>
but even after that it does not seem to hit the correct method.