Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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 带路由控制器的HttpPut_Javascript_C#_.net_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript 带路由控制器的HttpPut

Javascript 带路由控制器的HttpPut,javascript,c#,.net,ajax,asp.net-mvc,Javascript,C#,.net,Ajax,Asp.net Mvc,您好,我需要一些帮助我正在尝试使用ajax向控制器发送一些数据,使用PUT方法进行更新这里是javascript和ajax代码: function UpdateProduct() { var id = location.pathname.split('/')[2]; var product = { Name: $("#txtName").val(), Description: $("#txtDescription").val(), Price: $("#txtPrice

您好,我需要一些帮助我正在尝试使用ajax向控制器发送一些数据,使用PUT方法进行更新这里是javascript和ajax代码:

function UpdateProduct() {
var id = location.pathname.split('/')[2];

var product = {
    Name: $("#txtName").val(),
    Description: $("#txtDescription").val(),
    Price: $("#txtPrice").val(),
    SubCategoryId: $("#txtSubCategoryId").val(),
    CompanyId: $("#txtSubCategoryId").val(
    ProductCode: $("#ProductCode").val(
    Barcode: $("#Barcode").val(
    Brand: $("#txtBrand").val(),
    Material: $("#txtMaterial").val(),
    Date: $("#txtDate").val(),
};

$.ajax({
    url: "/UpdateProduct/"+id,
    type: "PUT",
    dataType: "json",
    data: product,
    success: function (result) {
        alert('Successful');
    },
    error: function (e) {
        alert(e.error);
    }
});
})

和我的控制器代码:

[HttpPut]
    [Route("UpdateProduct/{id}")]
    public void UpdateProduct(int id, ProductsBE product)
    {
        var api = ConfigurationManager.AppSettings["apiUrl"];
        var productsById = new ProductsRep();
        var searchResponse = productsById.UpdateProduct(product,id, api);
    }

API正在工作,因为我已经用postman对它进行了测试。

您必须使用
JSON.stringify
将您的对象
产品
转换为
JSON
字符串

$.ajax({
    url: "/UpdateProduct/"+id,
    type: "PUT",
    dataType: "json",
    data: JSON.stringify(product),
    success: function (result) {
        alert('Successful');
    },
    error: function (e) {
        alert(e.error);
    }
});

看起来你甚至没有亲自调试过,因为你几乎没有给我们任何信息。。。。例如,当您执行javascript时,浏览器是否尝试发送请求?浏览器请求了什么Url?请求的post正文的格式是否正确?等等。给我们一个浏览器用javascript发送的请求的例子,并找出它与邮递员请求的不同之处。那么你是否得到了空值?ajax甚至没有调用控制器,它只是提醒错误消息。。。url是正确的,因为我也用以下代码对其进行了测试:complete:function(){alert(this.url)},很明显,给我们那个错误消息。下面是我从警报中得到的错误:你能通过按f12和在网络选项卡中检查响应吗