AJAX成功功能和错误功能

时间:2018-07-11 19:18:04

标签: ajax asp.net-mvc

这是我的控制者:

[HttpPost]
    [Route("api/product/addproduct")]
    public IActionResult AddProduct([FromBody] string[] addproduct)
    {
      var pProductName= addproduct[0];
      var pProductDetail= addproduct[1];
      var pProductCategory= addproduct[2];

      Hotel NewProduct = new Product();
      {
          NewProduct.ProductName= pProductName;
          NewProduct.ProductDetail= pProductDetail;
          NewProduct.ProductCategory= pProductCategory;
      }

      _db.Products.Add(NewProduct);
      _db.SaveChanges();

      //create a new route for post method by id

            return Json(new{success=true}); //what should I return here to make AJAX return a success function
    }

这是我的AJAX,我需要返回Success而不是错误:

  $(function postProduct() {
  $('#btn').click(function() {

  var contentType = 'application/json; charset=utf-8';
  var productName = document.getElementById("name").value;
  var productDetail = document.getElementById("detail").value;
  var productCategory = document.getElementById("category").value;

var dimensions = [productName, productDetail, productCategory];
      var keys = $.map(dimensions, function(value, key) {
        return value;
  });

  $.ajax({
    type: "POST",
    url: "api/product/addproduct",
    data: JSON.stringify(keys),
dataType:'json' ,
    contentType: contentType,
    success: function(result) {
      alert('successful : ' + result);
      return result;
    },
    error: function(error) {
      alert("Not Working..");
    }
  });
}

  });

此函数成功将我的表单传递给我的控制器,并将其保存到数据库中。但是,我的ajax始终返回警告该消息的函数错误(不起作用..)。我尝试在c#控制器中返回许多不同的方式,但是,ajax仍然向我返回错误消息。为了让ajax返回成功函数,我应该在控制器中做什么?帮助

另一个问题是ajax返回成功功能后,如何通过警告消息将其定向到主页,该消息将告诉我们添加了新产品。谢谢。

更新:

我在控制器中添加了与ajax中的数据类型匹配的控制器,但仍然出现错误,而不是成功函数:

 var json = JsonConvert.SerializeObject(NewProduct);
        return Json(new { json });

2 个答案:

答案 0 :(得分:0)

在action方法中,您需要添加 JsonRequestBehavior.AllowGet 在Json结果中作为第二个参数

例如

return Json(new {success="true"}, JsonRequestBehavior.AllowGet )

答案 1 :(得分:0)

您可以通过以下两种方式从操作方法中返回:

  1. 如果要返回任何对象,并且对象值不应为null。 返回Json(NewProduct,JsonRequestBehavior.AllowGet);

  2. 返回Json(true,JsonRequestBehavior.AllowGet);