Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ajax到控制器返回的变量为null_Javascript_Jquery_Ajax_Asp.net Mvc_Entity Framework - Fatal编程技术网

Javascript 从ajax到控制器返回的变量为null

Javascript 从ajax到控制器返回的变量为null,javascript,jquery,ajax,asp.net-mvc,entity-framework,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进行更新。有一个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和VisualStudio2013。请你能帮帮我吗

我不明白是否需要添加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)
{
...
}

可能您应该发送
数据:{coming\u Pr:product2}
对象?显示您的模型。它是否具有带有getter/setter的公共属性。@StephenMuecke我添加了一个屏幕截图,请看:您是否尝试过不使用
JSON。Stringify
?我已经尝试过了,此时产品将为空。您可以尝试自己创建JSON对象,如下所示:。。。数据:{“No”:id,“Name”:$(“#ProductName”).val(),“R#u No”:$(“#ProducrR#U No”).val()}…我尝试过,但结果相同。“public ActionResult ProductUpdate(产品即将发布,int-id)”即将发布的发布仍然为空:(您似乎没有从操作中删除id。我从这里解决我的问题。谢谢大家对我的帮助。