从ajax到controller,返回的变量为null

时间:2016-03-30 10:30:32

标签: javascript jquery ajax asp.net-mvc entity-framework

我想用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.请帮助我。

1 个答案:

答案 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)
{
...
}