2016-03-30 48 views
0

我想和ajax.There更新是urun.js和代碼如下:返回的變量是從阿賈克斯空到控制器

Urun.js

var url = document.URL; 
var id = url.substring(url.lastIndexOf('/') + 1); 
if (Control2() == true) { 
    var product2= { 
     No: id, 
     Name: $("#ProductName").val(), 
     R_No: $("#ProducrR_No").val() 
    }; 
    $.ajax({ 
     type: 'POST', 
     url: '/Product/ProductUpdate/'+id, 
     data: JSON.stringify(product2), 
     dataType: 'json', 
     contentType: 'application/json; charset=utf-8', 
     success: function (sonuc) { 
      var $toast = toastr.success("Update Success", "This product updated successly.", { "timeout": "2000" }); 

      $toast.show(); 
     } 

的數據發送控制器頁但它是空的。我在控制頁面功能:

[HttpPost] 
public ActionResult ProductUpdate(Product coming_Pr, int id) 
{ 
    var model = DataModel.ModelOneObj.Stock(); 
    var f_Product= model.Product.FirstOrDefault(p=>p.No==id); 
    f_Product.Name= coming_Pr.Name; 
    f_Product.R_No= coming_Pr.R_No; 
    // model.SaveChanges(); 
    return Json(coming_Pr,JsonRequestBehavior.AllowGet); 
} 

結果:

{"No":0,"Name":null,"R_No":null} 

我使用MVC版本:開始5.2.3和Visual Studio 2013年請你能幫助我。

+0

可能是你應該把'數據:{coming_Pr:產品2}'對象? – teran

+0

顯示你的模型。它是否具有獲取/設置者的公共屬性? –

+0

@StephenMuecke我添加了一個截圖,請看看:[鏈接](http://screencast.com/t/knPvw0RCJ) –

回答

0

我不明白需要添加id來路由到該操作。您擁有JSON(product2)中的操作的所有必要信息。

Ajax調用:

$.ajax({ 
    type: 'POST', 
    url: '/Product/ProductUpdate', 
    data: JSON.stringify(product2), 
    dataType: 'json', 
    contentType: 'application/json; charset=utf-8', 
    success: function (sonuc) { 
     var $toast = toastr.success("Update Success", "This product updated successly.", { "timeout": "2000" }); 

     $toast.show(); 
    } 
}); 

控制器:

[HttpPost] 
public ActionResult ProductUpdate(Product coming_Pr) 
{ 
... 
} 
+0

當我刪除身份證,我得到這個錯誤:http://screencast.com/t/OZ4Oxr2P –

+0

你可以嘗試像這樣自己創建JSON對象: ... data:{「No」:id, 「Name」:$(「#ProductName」)。val(),「R_No」:$(「#ProducrR_No」)。val()} ... –

+0

我試過了,但結果是一樣的。 「public ActionResult ProductUpdate(Product coming_Pr,int id)」coming_Pr仍然爲空。 :( –