Asp.net mvc MVC项目中的控制器从Ajax Post调用返回null
我不确定控制器为什么从Ajax调用接收数据。我会做错什么吗Asp.net mvc MVC项目中的控制器从Ajax Post调用返回null,asp.net-mvc,Asp.net Mvc,我不确定控制器为什么从Ajax调用接收数据。我会做错什么吗 [HttpPost] [Route("Product/UpdateDetails")] public ActionResult UpdateProduct (ProductModel model) <<// model here is null { Product p = new Product {
[HttpPost]
[Route("Product/UpdateDetails")]
public ActionResult UpdateProduct (ProductModel model) <<// model here is null
{
Product p = new Product
{
ProductId = p.ProductId,
Price = p.Price,
};
return View("_ProductDetail"); }
你们能在上面的代码中发现我可能做错了什么吗?我看不出我做错了什么。试试这个:
$.ajax({
url: '/Product/UpdateDetails',
type: 'Post',
contentType: "application/json; charset=utf-8",
data: json,
success: function (results) {
}
});
您在模型上使用了JSON.Stringify()
,但在ajax调用中忘记使用变量“JSON”
,因此ajax试图发布一个“非JSON”模型
另外,ajax调用中没有
model
设置,发布数据的正确方法是data
,如您所见。只需删除contentType:“application/json;charset=utf-8”、
和model:model、
并添加data:model
。(没有必要对数据进行字符串化,但您没有使用它)
$.ajax({
url: '/Product/UpdateDetails',
type: 'Post',
contentType: "application/json; charset=utf-8",
data: json,
success: function (results) {
}
});