Javascript 从ajax到控制器返回的变量为null
我想用ajax进行更新。有一个urun.js,代码如下: Urun.jsJavascript 从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()
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。我从这里解决我的问题。谢谢大家对我的帮助。