这是我的控制者:
[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 });
答案 0 :(得分:0)
在action方法中,您需要添加 JsonRequestBehavior.AllowGet 在Json结果中作为第二个参数
例如
return Json(new {success="true"}, JsonRequestBehavior.AllowGet )
答案 1 :(得分:0)
您可以通过以下两种方式从操作方法中返回:
如果要返回任何对象,并且对象值不应为null。 返回Json(NewProduct,JsonRequestBehavior.AllowGet);
返回Json(true,JsonRequestBehavior.AllowGet);