我想用ajax进行更新。有一个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();
}
数据正在发送Controller页面,但它为null。我在控制器页面中的功能:
[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 :(得分: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)
{
...
}