2017-05-04 85 views
-1

我不確定控制器從Ajax調用接收數據的原因。我能做任何錯事嗎?我的MVC項目中的控制器從Ajax返回null Post調用

[HttpPost] 
     [Route("Product/UpdateDetails")] 
     public ActionResult UpdateProduct (ProductModel model) <<// model here is null 
     { 
      Product p = new Product 
      { 
       ProductId = p.ProductId, 
       Price = p.Price, 

      }; 


      return View("_ProductDetail"); } 
下面

Ajax調用:

var model = { 
      ProductId: 1, 
      Price: 270.99, 

     }; 

     var json = JSON.stringify(model) 


     $.ajax({ 
      url: '/Product/UpdateDetails', 
      type: 'Post', 
      contentType: "application/json; charset=utf-8", 
      model: model, 
      success: function (results) { 

      } 
     }); 


//Model 
public class Product 
{ 
public int Id {get;set;} 
public double Price {get;set;} 
} 

你們能發現任何東西,我可以在上面的代碼是做錯了什麼?我看不到任何我做錯的事情。

+0

只要刪除'contentType:「application/json; charset = utf-8」,'和'model:model,'並添加'data:model'。 (不需要將數據串聯起來,但是您還沒有使用它) –

回答

1

試試這個:

$.ajax({ 
    url: '/Product/UpdateDetails', 
    type: 'Post', 
    contentType: "application/json; charset=utf-8", 
    data: json, 
    success: function (results) { 

    } 
}); 

你在你的模型中使用JSON.Stringify(),卻忘了在Ajax調用使用變量"json",所以阿賈克斯試圖發佈「非JSON」模式。

此外,在ajax調用中沒有model設置,正確的發佈您的數據是data,如您可以看到here

+0

非常感謝! – 1future

相關問題