Я пытаюсь сделать сообщение с использованием Ajax в моем приложении ASP.NET MVC, но объект всегда пуст.
Это действие моего контроллера:
[HttpPost]
public JsonResult Newinventary(InventaryAjax inventary)
{
return Json(inventary);
}
Это в моем классе InventaryAjax:
public string SerialNumber { get; set; }
public decimal SupplierCode { get; set; }
public string WithdrawalOrder { get; set; }
public string EnterpriseDocument { get; set; }
public string Description { get; set; }
public int LerRaee { get; set; }
public string Weigth { get; set; }
public decimal Price { get; set; }
public string GeneralComments { get; set; }
public string HdserialsNumbers { get; set; }
Это мой звонок:
$("body").on("click", "#btnAdd", function () {
var inventary = new Object();
inventary.SupplierCode = $("#txtSupplier").val();
inventary.WithdrawalOrder = $("#txtOrden").val();
inventary.EnterpriseDocument = $("#txtDocumento").val();
inventary.LerRaee = $("#txtLER").val();
inventary.Weigth = $("#txtPeso").val();
inventary.Description = $("#txtDescripcion").val();
inventary.SerialNumber = $("#txtSN").val();
inventary.HdserialsNumbers = $("#txtSNHDD").val();
inventary.Price = $("#txtPrecio").val();
inventary.GeneralComments = $("#txtObservaciones").val();
$.ajax({
type: "POST",
url: "/Almacen/NewInventary",
data: JSON.stringify(inventary),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var row = $("#tblInventary tr:last-child");
if ($("#tblInventary tr:last-child span").eq(0).html() != " ") {
row = row.clone();
}
AppendRow(row, r.SupplierCode,
r.WithdrawalOrder, r.EnterpriseDocument,
r.LerRaee, r.Weigth, r.Description,
r.SerialNumber, r.HdserialsNumbers,
r.Price, r.GeneralComments);
txtLER.val("");
txtPeso.val("");
txtDescripcion.val("");
txtSN.val("");
txtSNHDD.val("");
txtPrecio.val("");
txtObservaciones.val("");
}
});
});
Я проверил почтовый звонок в браузере, и объект заполнен:
Description: "5"
EnterpriseDocument: "2"
GeneralComments: "9"
HdserialsNumbers: "7"
LerRaee: "3"
Price: "8"
SerialNumber: "6"
SupplierCode: "0"
Weigth: "4"
WithdrawalOrder: "1"
Но когда я проверяю метод, весь объект, полученный в контроллере, равен нулю
[ОБНОВЛЕНО]
Я попытался изменить данные поста Ajax:
$("body").on("click", "#btnAdd", function () {
var inventary = new Object();
inventary.SupplierCode = $("#txtSupplier").val();
inventary.WithdrawalOrder = $("#txtOrden").val();
inventary.EnterpriseDocument = $("#txtDocumento").val();
inventary.LerRaee = $("#txtLER").val();
inventary.Weigth = $("#txtPeso").val();
inventary.Description = $("#txtDescripcion").val();
inventary.SerialNumber = $("#txtSN").val();
inventary.HdserialsNumbers = $("#txtSNHDD").val();
inventary.Price = $("#txtPrecio").val();
inventary.GeneralComments = $("#txtObservaciones").val();
$.ajax({
type: "POST",
url: "/Almacen/NewInventary",
data: {inventary : inventary },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var row = $("#tblInventary tr:last-child");
if ($("#tblInventary tr:last-child span").eq(0).html() != " ") {
row = row.clone();
}
AppendRow(row, r.SupplierCode,
r.WithdrawalOrder, r.EnterpriseDocument,
r.LerRaee, r.Weigth, r.Description,
r.SerialNumber, r.HdserialsNumbers,
r.Price, r.GeneralComments);
txtLER.val("");
txtPeso.val("");
txtDescripcion.val("");
txtSN.val("");
txtSNHDD.val("");
txtPrecio.val("");
txtObservaciones.val("");
}
});
});
Я проверяю и объект отправляется в сообщении:
Но JsonResult все еще получает пустой инвентарьAjax
[ОБНОВЛЕНИЕ 2]
Я изменяю данные, отправленные только в json, и тип данных, полученный в методе контроллера
public ActionResult InsertInventary(string data)
{
InventaryAjax inventary = JsonConvert.DeserializeObject<InventaryAjax>(data);
return Json(inventary);
}
$.ajax({
type: "POST",
url: '@Url.Action("InsertInventary","Almacen")',
data: JSON.stringify(inventary) ,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var row = $("#tblInventary tr:last-child");
if ($("#tblInventary tr:last-child span").eq(0).html() != " ") {
row = row.clone();
}
AppendRow(row, r.SupplierCode,
r.WithdrawalOrder, r.EnterpriseDocument,
r.LerRaee, r.Weigth, r.Description,
r.SerialNumber, r.HdserialsNumbers,
r.Price, r.GeneralComments);
txtLER.val("");
txtPeso.val("");
txtDescripcion.val("");
txtSN.val("");
txtSNHDD.val("");
txtPrecio.val("");
txtObservaciones.val("");
}
});